js 分页插件(jQuery)

参考:http://www.jb51.net/article/117191.htm 侵删

css 部分

@charset "utf=8";
*{
 box-sizing: border-box;
 padding: 0;
 margin: 0;
}
.page{
 font-size: 13px;
 text-align: center;
 margin-top: 20px;
}
.page .page_to{
 display: inline-block;
 max-width: 250px;
}
.page .page_to li{
 display: inline-block;
 width: auto;
 height: auto;
 border: 1px solid #ddd;
 padding:5px 10px;
 border-left-width: 0;
 color: #323232;
 cursor: pointer;
}
.page .page_to li.page_hide{
 display: none;
}
.page .page_to li:hover{
 color: #32C2CD;
 background-color: #f4f4f4;
 border-color: #DDDDDD;
}
.page .page_to li:first-child{
 border-left-width: 1px;
}
.page .page_jump{
 display: inline-block;
 width: 180px;
}
.page .page_jump input.page_jump_input{
 width: 52px;
 height: 28px;
 text-align: center;
 text-decoration: none;
 background-color: #fff;
 border: 1px solid #ddd;
 margin:0 4px;
}
.page .page_jump input.page_jump_btn{
 display: inline-block;
 padding: 2px 10px;
 margin-left: 5px;
 font-size: 14px;
 font-weight: 400;
 line-height: 1.42857143;
 text-align: center;
 white-space: nowrap;
 /*vertical-align: middle;*/
 -ms-touch-action: manipulation;
 touch-action: manipulation;
 cursor: pointer;
 -webkit-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
 user-select: none;
 border: 1px solid transparent;
 border-radius: 4px;
 background-color: #32c5d2;
 color: #FFFFFF;
 font-weight: bold;
}
 

js 部分

(function($, window, undefined) {

    var curPage = '',
        //跳转是否有值
        jumpVal = '',
        //从DOM中重新获取数据总数/总页数
        lists = '',
        totals = '',
        //是否返回值
        isTrue = false;

    var Page = function(opts) {
        this.settings = $.extend({}, Page.defaults, opts);
        curPage = this.settings.initPage;
        totals = this.settings.totalPages;
        jumpVal = this.settings.inputVal;
        this.init();
    };

    //默认配置
    Page.defaults = {
        container: '.page',
        setPos: 'body',
        totalPages: null,
        totalLists: null,
        initPage: 1,
        inputVal: 1,
        callBack: null
    };

    Page.prototype = {
        init: function() {
            this.create();
        },
        create: function() {
            var _template = '<div class="page">'  
                '<span class="page_details">'  
                '共<span class="page_num">'   this.settings.totalLists   '</span>条记录,'  
                '第<span class="page_current">'   curPage   '</span>/'  
                '<span class="page_size">'   this.settings.totalPages   '</span>页'  
                '</span>'  
                '<div class="page_to">'  
                '<ul class="flex_parent">'  
                '<li class="page_first flex_child">首页</li>'  
                '<li class="page_pre page_hide flex_child">« 上一页</li>'  
                '<li class="page_next flex_child">下一页 »</li>'  
                '<li class="page_last flex_child">末页</li>'  
                '</ul>'  
                '</div>'  
                '<div class="page_jump">'  
                '<span>第:<input type="number" class="page_jump_input" value="'   this.settings.inputVal   '">页</span>'  
                '<input type="button" class="page_jump_btn" value="Go">'  
                '</div>'  
                '</div>';
            $(this.settings.setPos).append(_template);
            this.refreshDom();
            this.bindEvent();
        },
        bindEvent: function() {
            var _this = this;
            //跳转首页
            $(this.settings.container).on("click", ".page_first", function() {

                lists = $(_this.settings.container).find(".page_num").text();
                totals = $(_this.settings.container).find(".page_size").text();

                if ($.isFunction(_this.settings.callBack)) {
                    curPage = 1;
                    isTrue = _this.settings.callBack(1);
                    if (isTrue) {
                        _this.refreshDom();
                        $(_this.settings.container).find(".page_current").text(1);
                        $(_this.settings.container).find(".page_jump_input").val(curPage);
                    }
                }
            });
            //跳转上一页
            $(this.settings.container).on("click", ".page_pre", function() {

                lists = $(_this.settings.container).find(".page_num").text();
                totals = $(_this.settings.container).find(".page_size").text();

                if ($.isFunction(_this.settings.callBack)) {
                    if (curPage > 1) {
                        curPage = curPage - 1;
                        isTrue = _this.settings.callBack(curPage);
                        if (isTrue) {
                            _this.refreshDom();
                            $(_this.settings.container).find(".page_current").text(curPage);
                            $(_this.settings.container).find(".page_jump_input").val(curPage);
                        }
                    }
                }
            });
            //跳转下一页
            $(this.settings.container).on("click", ".page_next", function() {
                lists = $(_this.settings.container).find(".page_num").text();
                totals = $(_this.settings.container).find(".page_size").text();
                if ($.isFunction(_this.settings.callBack)) {
                    if (curPage < totals) {
                        curPage = curPage   1;
                        isTrue = _this.settings.callBack(curPage);
                        if (isTrue) {
                            _this.refreshDom();
                            $(_this.settings.container).find(".page_current").text(curPage);
                            $(_this.settings.container).find(".page_jump_input").val(curPage);
                        }
                    }
                }
            });
            //跳转末页
            $(this.settings.container).on("click", ".page_last", function() {

                lists = $(_this.settings.container).find(".page_num").text();
                totals = $(_this.settings.container).find(".page_size").text();

                if ($.isFunction(_this.settings.callBack)) {
                    curPage = totals;
                    isTrue = _this.settings.callBack(curPage);
                    if (isTrue) {
                        _this.refreshDom();
                        $(_this.settings.container).find(".page_current").text(totals);
                        $(_this.settings.container).find(".page_jump_input").val(curPage);
                    }
                }
            });
            //Go跳转
            $(this.settings.container).on("click", ".page_jump_btn", function() {
                lists = $(_this.settings.container).find(".page_num").text();
                totals = $(_this.settings.container).find(".page_size").text();

                if ($.isFunction(_this.settings.callBack)) {
                    jumpVal = Number($(_this.settings.container).find("input.page_jump_input").val());
                    // console.log('跳转的页数:'   jumpVal   ';跳转之前的页数:'   curPage);
                    isTrue = _this.settings.callBack(jumpVal);
                    if (jumpVal >= 1 && jumpVal <= totals) {
                        curPage = jumpVal;
                        // isTrue = _this.settings.callBack(curPage);
                        if (isTrue) {
                            _this.refreshDom();
                            $(_this.settings.container).find(".page_current").text(curPage);
                            $(_this.settings.container).find(".page_jump_input").val(curPage);
                        }
                    } else {
                        jumpVal = curPage;
                    }
                }
            });
        },
        refreshDom: function() {
            $(this.settings.container).find("li.flex_child").removeClass("page_hide");
            if (Number(totals) == 1) {
                $(this.settings.container).find(".page_pre").addClass("page_hide");
                $(this.settings.container).find(".page_next").addClass("page_hide");
            } else if (Number(totals) == 2) {
                if (Number(curPage) == 1) {
                    $(this.settings.container).find(".page_pre").addClass("page_hide");
                } else {
                    $(this.settings.container).find(".page_next").addClass("page_hide");
                }
            } else if (Number(curPage) == 1 && Number(totals) > 2) {
                $(this.settings.container).find(".page_pre").addClass("page_hide");
            } else if (Number(curPage) == Number(totals) && Number(totals) > 2) {
                $(this.settings.container).find(".page_next").addClass("page_hide");
            }
        }
    };

    var pageInit = function(opts) {
        return new Page(opts);
    };

    window.pageInit = $.pageInit = pageInit;

})(jQuery, window, undefined);

调用

function page(){
    $.pageInit({
        container: '.page', //容器:默认page
        setPos: '.pageBox', //放置位置:默认body
        totalPages: totalPages, //总页数:必填(后台返回的,加载列表可以取到)
        totalLists: totalCount, //数据总数:必填(后台返回的,加载列表可以取到)
        initPage: pageNo, //初始页码:默认1(后台会返回,自己也可以定义)
        inputVal: 1, //设置跳转的input值:默认1
        //要执行的函数:默认null,必须为fn且返回true则可执行分页,false则不执行
        callBack: function(n) {
            var flag = true;
       console.log(n); getCustomerList(n);
//getCustomerList 是加载列表的方法;n 为返回的页码数, return flag; } }); };

 


更多专业前端知识,请上 【猿2048】www.mk2048.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值