分页

来源:互联网 发布:怎么查看淘宝下单时间 编辑:程序博客网 时间:2024/06/15 23:12
(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();
                obj.append('<span class="pagecount">共' + args.pageCount + '页</span>');
                //上一页
                if (args.current > 1) {
                    obj.append('<a href="javascript:;" class="prevPage">上一页</a>');
                } else {
                    obj.remove('.prevPage');
                    obj.append('<span class="disabled">上一页</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>...</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>...</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">下一页</a>');
                } else {
                    obj.remove('.nextPage');
                    obj.append('<span class="disabled">下一页</span>');
                }
                    //obj.append('<span class="pagecount">共' + args.pageCount + '页</span>');
                //跳转页码 onkeypress="return is_number(event)"
                if (args.turndown == 'true') {
                    obj.append('<span class="countYe">到第<input type="text" maxlength=' + args.pageCount.toString().length + '  onkeypress="return is_number(event)">页<a href="javascript:;" class="turndown">确定</a><span>');
                }
            })();
        },
        //绑定事件
        bindEvent: function (obj, args) {
            return (function () {
                obj.on("click", "a.tcdNumber", function () {
                    var current = parseInt($(this).text());
                    ms.fillHtml(obj, { "current": current, "pageCount": args.pageCount, "turndown": args.turndown });
                    if (typeof (args.backFn) == "function") {
                        args.backFn(current);
                    }
                });
                //上一页
                obj.on("click", "a.prevPage", function () {
                    var current = parseInt(obj.children("span.current").text());
                    ms.fillHtml(obj, { "current": current - 1, "pageCount": args.pageCount, "turndown": args.turndown });
                    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, "turndown": args.turndown });
                    if (typeof (args.backFn) == "function") {
                        args.backFn(current + 1);
                    }
                });
                //跳转
                obj.on("click", "a.turndown", function () {
                    var page = $("span.countYe input").val();
                    //var number = /^\d+$/; || !number.test(page)
                    if (page > args.pageCount || page == 0) {
                        //layer.msg("您的输入有误,请重新输入!");
                    }else {
                        if (typeof (args.backFn) == "function") {
                            args.backFn(page);
                        }
                    }
                });
                //输入验证
                //obj.on("keypress", "span.countYe input", function () {
                //    var page = $("span.countYe input").val();
                //    console.log("1", page)
                //    var number = /^\d+$/;
                //    if (number.test(page)) {
                //        return false
                //    }
                //});
            })();
        }
    };
    $.fn.createPage = function (options) {
        var args = $.extend({
            pageCount: 10,
            current: 1,
            turndown: true,
            backFn: function () { }
        }, options);
        ms.init(this, args);
    };


    //function is_number(e) {
        //IE 中 Event 对象使用 keyCode 获得键入字符的 Unicode 编码  
        //DOM 中 Event 对象 使用 charCode 获得键入字符的 Unicode 编码  
        //var char_code = e.charCode ? e.charCode : e.keyCode;
        //Unicode 编码中, 0~9 的编码的十进制 是 48~57 之间 , 0为 48, 9 为57  
    //    if (char_code < 48 || char_code > 57) {
    //        alert("只允许输入数字");
    //        return false;
    //    }
    //    else {
    //        return true;
    //    }
    //}

})(jQuery);


调用部分

    //分页
    $(".pageDiv").createPage({
        pageCount: @(data.TotalCount%10==0? data.TotalCount / 10: (data.TotalCount / 10)+1),//总页数
        current: @(string.IsNullOrEmpty(Request.QueryString["p"])?1:Convert.ToInt32(Request.QueryString["p"])),//当前页
        turndown: 'true',//是否显示跳转框,显示为true,不现实为false
        backFn: function (pageindex) {
            var myURL = parseURL(document.URL);
                        var _newUrl = replaceUrlParams(myURL, { p: pageindex });
                        location.href = _newUrl;
                    }
                });

原创粉丝点击