ajax分页插件

创建

/**
 *  {
 *      "curpage": 1,
 *      "pagesize": 10,
 *      "total": 100,
 *  }
 */
(function(a){
    $.fn.extend({
        pageable: function(options, fn) {
            if (fn == undefined || fn.name == undefined) {
                console.log("回调函数名未定义");
                return;
            }
            var curpage = 1; pagesize = 10; total = 0;
            if (options != undefined) {
                if (options.curpage != undefined && options.curpage > 0) {
                    curpage = options.curpage;
                }
                if (options.pagesize != undefined && options.pagesize > 0) {
                    pagesize = options.pagesize;
                }
                if (options.total != undefined && options.total >= 0) {
                    total = options.total;
                }
            }
            var _html = "<div class='span6'></div>" +
                "<div class='span6'>" +
                "<div class='dataTables_paginate paging_bootstrap pagination'>" +
                "<ul>";
            if (total == 0) {
                // TODO do nothing
            } else if (total <= pagesize) {
                _html += "<li class='active'><a href='javascript:"+fn.name+"(1, "+pagesize+")'>1</a></li>";
            } else {
                var page = Math.ceil(total / pagesize); // 总页数
                if (page <= 7) { // 总页数小于7
                    for (var i = 1; i <= page; i++) {
                        if (i == curpage) {
                            _html += "<li class='active'><a hre='javascript:void(0);'>"+i+"</a></li>";
                        } else {
                            _html += "<li><a href='javascript:"+fn.name+"("+i+", "+pagesize+")'>"+i+"</a></li>";
                        }
                    }
                } else { // 总共页数大于7
                    if (curpage <= 4 || curpage > (page - 4)) { // 当前页<=4 或者 当前页>=(totle-4)
                        var idx = curpage <= 4 ? 5 : 4;
                        for (var i = 1; i < idx; i++) {
                            if (i == curpage) {
                                _html += "<li class='active'><a hre='javascript:void(0);'>"+i+"</a></li>";
                            } else {
                                _html += "<li><a href='javascript:"+fn.name+"("+i+", "+pagesize+")'>"+i+"</a></li>";
                            }
                        }
                        _html += "<li><a hre='javascript:void(0);'>...</a></li>";
                        var _idex = (curpage > (page - 4)) ? 3 : 2;
                        for (var i = (page - _idex); i <= page ; i++) {
                            if (i == curpage) {
                                _html += "<li class='active'><a hre='javascript:void(0);'>"+i+"</a></li>";
                            } else {
                                _html += "<li><a href='javascript:"+fn.name+"("+i+", "+pagesize+")'>"+i+"</a></li>";
                            }
                        }
                    } else { // 当前页在中间
                        _html += "<li><a href='javascript:"+fn.name+"(1, "+pagesize+");'>1</a></li>";
                        _html += "<li>...</li>";
                        for (var i = curpage - 3; i <= curpage + 3 && i < page; i++) {
                            if (i == curpage) {
                                _html += "<li class='active'><a hre='javascript:void(0);'>"+i+"</a></li>";
                            } else {
                                _html += "<li><a href='javascript:"+fn.name+"("+i+", "+pagesize+");'>"+i+"</a></li>";
                            }

                        }
                        if (page - curpage > 4) {
                            _html += "<li><a hre='javascript:void(0);'>...</a></li>";
                        }
                        _html += "<li><a href='javascript:"+fn.name+"("+page+", "+pagesize+");'>"+page+"</a></li>";
                    }
                }
            }

            _html +=    "</ul>" +
                    "</div>" +
                "</div>";
            this.html(_html);
        }
    });
})(window);

使用

$.ajax({
    "url": "${ctx!}/studyCourse/getStudyStatistics",
    type: "get",
    dataType: "json",
    data: {
        "pageNumber": curpage,
        "pageSize": pagesize
    },
    success: function (resp) {
        var _html = "";
        for (var key in resp.data.content) {
            var entity = resp.data.content[key];
            _html += "<tr></tr>";
        }
        $("#table2").html(_html);
        // 设置分页
        $("#pageDiv2").pageable({
            curpage: curpage,
            pagesize: pagesize,
            total: resp.total
        }, {
            name: "CallBacllMethodName" // 点击分页回调的方法,此方法需要接受两个参数,当前页和每页显示条数
        });
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值