/*分页插件*/ var Pagination = { showPageCount: 7, init: function (obj, callback,topFlag) { this.bindListener(obj, callback,topFlag); }, createHtml: function (pageIndex, recordCount, pageSize) { var pageCount = Math.ceil(recordCount / pageSize); //总页数 var showPageCount = this.showPageCount; var MaxCount = 10000000000; var HalfPageCount = (showPageCount + 1) / 2; var html = []; if (pageCount > MaxCount) { pageCount = MaxCount; } if (pageIndex > pageCount - 1) { pageIndex = pageCount - 1; } html.push("共" + recordCount + "条"); if (pageIndex > 0) { html.push(""); } else { html.push(""); } if (pageCount <= showPageCount) { for (var i = 0; i < pageCount; i++) { if (pageIndex == i) { html.push("" + (i + 1) + ""); } else { html.push("" + (i + 1) + ""); } } } else if (pageIndex < HalfPageCount) { for (var i = 0; i < showPageCount - 1; i++) { if (pageIndex == i) { html.push("" + (i + 1) + ""); } else { html.push("" + (i + 1) + ""); } } html.push("..."); html.push("" + pageCount + ""); } else if (pageIndex >= pageCount - HalfPageCount - 1) { html.push("" + 1 + ""); html.push("..."); for (var i = pageCount - showPageCount + 1; i < pageCount; i++) { if (pageIndex == i) { html.push("" + (i + 1) + ""); } else { html.push("" + (i + 1) + ""); } } } else { html.push("" + 1 + ""); html.push("..."); for (var i = pageIndex - HalfPageCount / 2; i <= pageIndex + HalfPageCount / 2; i++) { if (pageIndex == i) { html.push("" + (i + 1) + ""); } else { html.push("" + (i + 1) + ""); } } html.push("..."); html.push("" + pageCount + ""); } if (pageIndex < pageCount - 1) { html.push(""); } else { html.push(""); } // html.push("每页" + pageSize + "条"); html.push("共" + pageCount + "页"); html.push(""); // html.push(""); return html.join(""); }, bindListener: function (obj, callback,topFlag) { var topFlag = topFlag || true; obj.on("click", "a", function () { if (typeof callback === "function") { var index = $(this).attr("page"); callback(parseInt(index)); } if(topFlag){ $(window).scrollTop(0); } return false; }); obj.on("click", "button", function () { var pageInput = obj.find('input'); if (typeof callback === "function") { var index = pageInput.val(); if (index == '') { pageInput.focus(); return false; // index = 1; } callback(parseInt(index) - 1); } return false; }); // var pageButton = $("#pageButton"); obj.on("keyup", "input", function (e) { switch (e.keyCode) { case 37: break; case 38: break; case 39: break; case 40: break; case 13: changePage(); break; case 8: $(e.target).attr('oldpage', $(e.target).val()); break; case 46: $(e.target).attr('oldpage', $(e.target).val()); break; default : validPage(); } return false; }); //分页 function changePage() { var pageInput = obj.find('input'); var page = pageInput.val(); var maxPage = parseInt(obj.find(".total_page").html().substring(1)); var pattern = new RegExp("^[1-9]\\d{0," + maxPage.toString().length + "}$"); if (page.trim() == "") { pageInput.focus(); return; } if (pattern.test(page)) { page = parseInt(page); maxPage = parseInt(maxPage); if (page > maxPage || page < 0) { pageInput.val("").focus(); return; } } else { pageInput.val("").focus(); return; } callback(parseInt(page) - 1); } //页码校验v2 function validPage() { var pageInput = obj.find('input'); var totalPageHtml = obj.find(".total_page").html(); var maxPage = parseInt(totalPageHtml.substring(1, totalPageHtml.length - 1)); var page = pageInput.val(); var pattern = /^[0-9]+$/; var oldpage = pageInput.attr("oldpage") || ''; if (page.trim() == "") { pageInput.val(""); return; } if (!pattern.test(page)) { pageInput.val(oldpage); return; } var pageInt = parseInt(page); if (page.substr(0, 1) == '0') { pageInput.val(pageInt); } if (pageInt == 0) { pageInput.val(''); return; } if (pageInt > parseInt(maxPage)) { pageInput.val(page.substr(0, page.length - 1)); return; } pageInput.attr('oldpage', pageInput.val()); } }, Page: function (obj, pageIndex, recordCount, pageSize) { obj.empty(); obj.html(this.createHtml(pageIndex, recordCount, pageSize)); } };