jquery.page.js 5.51 KB
Newer Older
eddie.woo's avatar
eddie.woo committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
//分页插件
/**
2014-08-05 ch
**/
(function ($) {
    var ms = {
        init: function (obj, args) {
            return (function () {
                ms.fillHtml(obj, args);
                ms.bindEvent(obj, args);
            })();
        },
        //填充html
        fillHtml: function (obj, args) {
            return (function () {
                obj.empty();
                //上一页
                if (args.current > 1) {
                    obj.append('<a href="javascript:;" class="prevPage"><i class="fa fa-angle-double-left" aria-hidden="true"></i></a>');
                } else {
                    obj.remove('.prevPage');
                    obj.append('<span class="disabled"><i class="fa fa-angle-double-left" aria-hidden="true"></i></span>');
                }
                //中间页码
                if (args.current != 1 && args.current >= 4 && args.pageCount != 4) {
                    obj.append('<a href="javascript:;" class="tcdNumber">' + 1 + '</a>');
                }
                if (args.current - 2 > 2 && args.current <= args.pageCount && args.pageCount > 5) {
                    obj.append('<span class="tcdPageCode-ellipsis">...</span>');
                }
                var start = args.current - 2, end = args.current + 2;
                if ((start > 1 && args.current < 4) || args.current == 1) {
                    end++;
                }
                if (args.current > args.pageCount - 4 && args.current >= args.pageCount) {
                    start--;
                }
                for (; start <= end; start++) {
                    if (start <= args.pageCount && start >= 1) {
                        if (start != args.current) {
                            obj.append('<a href="javascript:;" class="tcdNumber">' + start + '</a>');
                        } else {
                            obj.append('<span class="current">' + start + '</span>');
                        }
                    }
                }
                if (args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5) {
                    obj.append('<span class="tcdPageCode-ellipsis">...</span>');
                }
                if (args.current != args.pageCount && args.current < args.pageCount - 2 && args.pageCount != 4) {
                    obj.append('<a href="javascript:;" class="tcdNumber">' + args.pageCount + '</a>');
                }
                //下一页
                if (args.current < args.pageCount) {
                    obj.append('<a href="javascript:;" class="nextPage"><i class="fa fa-angle-double-right"></i></a>');
                } else {
                    obj.remove('.nextPage');
                    obj.append('<span class="disabled"><i class="fa fa-angle-double-right"></i></span>');
                }
            })();
        },
        //绑定事件
        bindEvent: function (obj, args) {
            return (function () {

                $(obj).find('.tcdNumber').off("click").on("click", function () {
                    var current = parseInt($(this).text());
                    ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount });
                    if (typeof (args.backFn) == "function") {
                        args.backFn(current);
                    }
                });

                //obj.on("click","a.tcdNumber",function(){
                //    var current = parseInt($(this).text());
                //    ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount });
                //    if (typeof (args.backFn) == "function") {
                //        args.backFn(current);
                //    }
                //});

                $(obj).find('.prevPage').off('click').on("click", function () {
                    var current = parseInt(obj.children("span.current").text());
                    ms.fillHtml(obj, { "current": current - 1, "pageCount": args.pageCount });
                    if (typeof (args.backFn) == "function") {
                        args.backFn(current - 1);
                    }
                });

                //上一页
                //obj.on("click","a.prevPage",function(){
                //	var current = parseInt(obj.children("span.current").text());
                //	ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount});
                //	if(typeof(args.backFn)=="function"){
                //		args.backFn(current-1);
                //	}
                //});

                $(obj).find('.nextPage').off('click').on("click", function () {
                    var current = parseInt(obj.children("span.current").text());
                    ms.fillHtml(obj, { "current": current + 1, "pageCount": args.pageCount });
                    if (typeof (args.backFn) == "function") {
                        args.backFn(current + 1);
                    }
                });

                //下一页
                //obj.on("click","a.nextPage",function(){
                //	var current = parseInt(obj.children("span.current").text());
                //	ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount});
                //	if(typeof(args.backFn)=="function"){
                //		args.backFn(current+1);
                //	}
                //});

            })();
        }
    }
    $.fn.createPage = function (options) {
        var args = $.extend({
            pageCount: 10,
            current: 1,
            backFn: function () { }
        }, options);
        ms.init(this, args);
    }
})(jQuery);

//代码整理:懒人之家 www.lanrenzhijia.com