`
hudeyong926
  • 浏览: 2033242 次
  • 来自: 武汉
社区版块
存档分类
最新评论

jquery ajax分页 js对象

阅读更多
<div class="sub_menus module-manager">
    <div class="module-list">
        <table class="list" id="tab_mod">
            <tr class="t_title">
                <th class="col-1">序号</th>
                <th class="col-2">模块名</th>
                <th class="col-3">价格</th>
                <th class="col-4">购买时间</th>
            </tr>                                                                                            
        </table>
       </div>
    <div id="pager1" class="pager"></div>	
</div>    	

jquery.page.js分页类 js对象解决同一个方法在页面引入多次报错问题(调用:对象.方法)

/**
 * table分页类
 * author phoenix
 * date 2013-12-17
 * 示例:
 var page = new Page({
	url:'busimodules.php',  //获取分页的数据
	issort: true,			//是否显示排序序号
	pageSize:4,				//每页显示的条数
	name:'page',            //该值必须和实例化对象一样,如果创建多个实例的话实例名称不能相同
	fileds:['mname', 'price', 'buytime'], //要显示的字段,必须和url参数:busimodules.php的返回值一致
	tabcontainer: 'tab_mod',//表格id
	navcontainer: 'pager1'  //翻页导航显示的id
});
 var page3 = new Page({
    url:'busimodules.php',
    name:'page3',
    pageNavFun:'getPageBar2',
    pageSize:12,
    callback:function (jsondata, navstr) {}
});
 * busimodules.php返回json数据格式:
 {"total":6,"pageSize":3,"curPage":1,"totalPage":2,"data":[{"mname":"\u8d2d\u7269\u8f66","price":"10.00","buytime":"2013-12-16 13:40:23"},{"mname":"\u6536\u85cf","price":"10.00","buytime":"2013-12-16 13:40:16"},{"mname":"\u8ba2\u5355","price":"10.00","buytime":"2013-12-16 13:40:10"}]}

 如果要将返回结果自己处理,可以在参数name的后面加上参数callback:function (jsondata, navstr) {处理逻辑} 后面的tabcontainer等参数就都没有用了
 *
 */

var Page = function (options) {
    var defaults = {
        navNum:10,
        navOffset:1,
        pageSize:3,
        data:{},
        pageNavFun:'getPageBar',
        issort:false
    };

    this.options = $.extend({}, defaults, options);

    if(!this.options.url) {return false;}
    if(!this.options.name) {return false;}
    if(!this.options.callback) {
        if(!this.options.tabcontainer) {return false;}
        if(!this.options.navcontainer) {return false;}
        if(!this.options.fileds || this.options.fileds.length < 1) {return false;}
    }
    this.init();
}

Page.prototype.init = function () {
    this.getPageData(1);
}

/**
 * 获取对应页数据
 * p表示当前页数
 * 返回当前页的数据,和导航数据
 */
Page.prototype.getPageData = function (p) {
    $this = this;
    if (!p) p = 1;
    ajaxSendData = 'pagesize=' + $this.options.pageSize + '&p=' + p;
    $.each($this.options.data, function (name, val) {
        ajaxSendData += "&" + name + "=" + val;
    });

    $.ajax({
        type:'POST',
        url:$this.options.url + "?t=" + Math.random(),
        data:ajaxSendData,
        async:false,
        dataType:'JSON',
        success:function (obj) {
            var navstr = eval($this.options.pageNavFun + "(obj, $this.options)");
            var data = obj.data;

            if ($this.options.callback) {
                $this.options.callback(data, navstr);
            } else {
                var html = '';
                var shtml = '';
                for (var i = 0; i < data.length; i++) {

                    if ($this.options.issort) {
                        shtml = '<td class="col-1">' + ($this.options.pageSize * (p - 1)-0 + (i + 1)) + '</td>';
                    }

                    html += '<tr>' + shtml;
                    var k = 1;
                    if (shtml != '') {
                        k = 2;
                    }
                    for (var j = 0; j < $this.options.fileds.length; j++) {
                        html += '<td class="col-' + k + '">' + data[i][$this.options.fileds[j]];
                        k++;
                    }
                    html += '</tr>';
                }

                if (!$('#' + $this.options.tabcontainer).find('tr:eq(1)')[0]) {
                    $('#' + $this.options.tabcontainer).append(html);
                }
                else {
                    $('#' + $this.options.tabcontainer).find('tr:gt(0)').remove();
                    $('#' + $this.options.tabcontainer).append(html);
                }
                $('#' + $this.options.navcontainer).html(navstr);
            }
        }
    });
}

function getPageBar(obj, opt) {
    if (!obj) return false;
    curPage = parseInt(obj.curPage, 10);
    if (curPage > obj.totalPage) {
        curPage = obj.totalPage;
    }

    if (curPage < 1) {
        curPage = 1;
    }

    if (curPage <= parseInt(opt.navNum / 2, 10)) {
        opt.navOffset = 1;
    }
    else {
        opt.navOffset = curPage - parseInt(opt.navNum / 2, 10);
    }
    var prev = next = 0;
    var startnav = endnav = '';

    if (curPage == 1) {
        startnav = '<li class="paging_btn previous">首页</li> <li class="paging_btn previous">上页</li>';
    }
    else {
        prev = curPage - 1;
        startnav = '<li class="paging_btn previous" onclick="javascript:' + opt.name + '.getPageData(1);">首页</li> <li class="paging_btn previous" onclick="javascript:' + opt.name + '.getPageData(' + prev + ');">上页</li>';
    }

    if (curPage == obj.totalPage || obj.totalPage == 0) {
        endnav = '<li class="paging_btn next">下页</li> <li class="paging_btn next">末页</li>';
    }
    else {
        next = curPage + 1;
        endnav = '<li class="paging_btn next" onclick="javascript:' + opt.name + '.getPageData(' + next + ');">下页</li> <li class="paging_btn next" onclick="javascript:' + opt.name + '.getPageData(' + obj.totalPage + ');">末页</li>';
    }

    var amongNav = '';
    for (var i = opt.navOffset; i < opt.navOffset + opt.navNum; i++) {
        if (i == curPage) {
            amongNav += '<li class="paging_btn num checked">' + i + '</li>';
        }
        else {
            amongNav += '<li class="paging_btn num" onclick="javascript:' + opt.name + '.getPageData(' + i + ');">' + i + '</li>';
        }
        if (i >= obj.totalPage)
            break;

    }

    var jump = '<input type="text" name="page" class="jump_page" id="jump_page" maxlength="4" />';
    jump += '<input type="button" class="jump_btn" id="jump_btn" value="go" />';
    return startnav + amongNav + endnav + jump;
}

 

JS面向对象编程之对象访问控制实例

function Cat(name, age){
    var name = name;
    this.age = age||1;
    this.setName = function(sName){
        this.name = sName;
    }
    this.getName = function(){
        return this.name;
    }
    this.setAge = function(nAge){
        this.age = nAge;
    }
    this.getAge = function(){
        return this.age;
    }
}
 
Cat.prototype.say = function(){
    console.log('I am '+this.name+', I am '+this.age);
}
 
var kk = new Cat('kk');
console.log(kk.name);//undefined @private
kk.setName('deeka');
console.log(kk.getName()); // deeka
kk.setAge(2);
console.log(kk.getAge()); // 2
kk.age = 3;
console.log(kk.age);//3 @public
kk.say(); // I am deeka, I am 3

 

分享到:
评论

相关推荐

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** 在Web开发中,分页是一种常见的数据展示方式,它能够有效地组织大量数据,提高页面加载速度,优化用户体验。jQuery,一个轻量级、功能丰富的JavaScript库,结合AJAX(异步JavaScript和...

    jQuery AJAX 分页

    **jQuery AJAX 分页详解** 在Web开发中,为了提高用户体验,我们经常需要处理大量数据时实现分页功能。jQuery作为一个轻量级、功能强大的JavaScript库,提供了与服务器...希望本文能帮助你理解和实施jQuery AJAX分页。

    jQuery Ajax分页插件(jquery.pagination)

    `jQuery Pagination Plugin`是针对jQuery设计的一个Ajax分页插件,用于实现高效且用户友好的分页功能。 ### jQuery分页插件的基本概念 1. **Ajax**:异步JavaScript和XML,允许页面与服务器进行通信,更新部分页面...

    jquery ajax 分页 前端

    **jQuery AJAX 分页技术在前端应用详解** 在Web开发中,分页是一种常见的用户界面功能,用于处理大量数据的展示,提高页面加载速度并优化用户体验。本篇文章将深入探讨如何利用jQuery和AJAX技术实现纯前端的分页...

    jquery+ajax分页

    通过以上步骤,我们可以实现一个基本的jQuery + AJAX分页功能。在实际项目中,根据需求可能还需要考虑更多细节,如分页大小的调整、搜索和排序功能的集成等。总的来说,jQuery与AJAX的结合极大地提高了Web应用的交互...

    jquery ajax分页插件

    在Web开发中,jQuery AJAX分页插件是一种用于实现网页数据动态加载的工具,它可以显著提升用户体验,尤其是在处理大量数据时。本篇文章将深入探讨jQuery AJAX分页插件的工作原理、实现方式以及如何使用。 首先,...

    jQueryPager(JQuery分页插件pagination实现Ajax分页)

    **jQueryPager:基于JQuery的Ajax分页插件Pagination实现** 在Web开发中,当数据量庞大时,分页是一种常见的优化用户体验的方式。jQueryPager是一款轻量级的jQuery分页插件,它允许开发者通过Ajax无刷新的方式实现...

    jquery ajax分页例子

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互。本示例主要关注jQuery结合Ajax实现的分页功能,这种技术允许用户在不刷新整个页面的情况下加载新的内容,提高了...

    jquery ajax 分页 局部刷新 mysql数据库

    要实现jQuery AJAX分页,我们首先需要在前端创建一个HTML结构,用于展示数据并包含分页链接或按钮。这些链接通常会触发AJAX事件。例如,我们可以使用以下代码创建分页链接: ```html &lt;ul id="pagination"&gt;&lt;/ul&gt; ```...

    jQuery Ajax分页插件(.Net示例)

    **jQuery Ajax分页插件.Net示例** 在Web开发中,分页是一种常见的用户界面功能,用于处理大量数据。jQuery是一个流行的JavaScript库,它提供了一系列API来简化DOM操作、事件处理以及与服务器的异步通信。jQuery ...

    简单的JqueryAjax分页

    【简单的JqueryAjax分页】知识点详解 在Web开发中,分页是一种常见的用户界面功能,用于处理大量数据的展示,提高网页加载速度并优化用户体验。本教程将深入讲解如何利用jQuery和Ajax技术来实现一个简单的分页系统...

    JQuery Ajax 分页插件 jquery_paginator

    而`jquery_paginator`是一款基于jQuery的Ajax分页插件,它允许开发者轻松实现动态加载数据,提高网页性能。 ### 1. jQuery基础知识 理解`jquery_paginator`之前,首先需要了解jQuery的基本概念和用法。jQuery通过...

    JQuery autocomplete Ajax分页控件

    在描述中提到的"JQuery autocomplete ajax分页",意味着这个实现增加了分页功能。分页是处理大量数据的常用方法,它可以将数据分成多个部分,每次只加载一部分到前端,这样可以减少一次性加载所有数据带来的性能问题...

    Jquery ajax方式读取txt文件、Jquery分页.

    在给定的标题和描述中,主要涉及两个关键知识点:使用jQuery的AJAX方法读取TXT文件和实现jQuery分页功能。接下来,我们将深入探讨这两个主题。 首先,我们来讨论如何使用jQuery的AJAX方法读取TXT文件。AJAX(异步...

    基于jquery的js+ajax分页控件

    总的来说,基于jQuery的JS+Ajax分页控件通过结合JavaScript和服务器API,实现了无需刷新页面即可动态加载数据的分页功能。这既提高了性能,又提升了用户体验。开发者可以根据实际需求进行定制和扩展,比如增加翻页...

    PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用

    本文主要介绍如何利用PHP、Smarty模板引擎以及jQuery Ajax分页插件jquery.pager.js来实现动态分页功能。 #### 二、准备工作 1. **环境搭建**: - 确保服务器上已安装并配置好PHP环境。 - 安装并配置MySQL数据库...

    asp+jquery ajax实例源码,添加,删除,修改,分页

    综上所述,这个"asp+jquery ajax实例源码"展示了如何利用ASP作为服务器端语言处理数据,结合jQuery的AJAX功能,实现无刷新的交互体验,优化用户在添加、删除、修改和分页操作中的浏览感受。通过学习和理解这个实例,...

    asp.net中利用Jquery+Ajax+Json实现无刷新分页

    为了解决这个问题,我们可以利用jQuery、Ajax和JSON技术来实现无刷新分页。这个主题的"asp.net+Jquery+Ajax+Json"压缩包提供了一个完整的示例,展示了如何在ASP.NET中集成这些技术。 首先,jQuery是一个轻量级的...

    Java Ajax分页,jsp ajax分页

    总结来说,实现Java AJAX分页和JSP分页涉及前后端的协作。前端通过AJAX与后端通信,后端处理请求并从数据库获取数据,然后将数据返回给前端,前端再更新页面内容。这个过程提升了用户体验,使得浏览大数据集变得更加...

    基于 jQuery 实现的 Ajax 异步分页

    为了解决这个问题,我们可以采用基于jQuery的Ajax异步分页技术。本篇文章将详细介绍如何利用jQuery实现Ajax异步分页,以及其背后的原理和实践应用。 首先,让我们理解什么是Ajax。AJAX(Asynchronous JavaScript ...

Global site tag (gtag.js) - Google Analytics