(function ($) {//p为当前页面,pn为总页数 $.fn.pagenav = function (options) { options = $.extend({}, $.fn.pagenav.defaults, options || {}); return this.each(function () { $(this).attr("class", options.cssclass); $(this).css("width", options.width); $(this).empty().append(renderpage(parseint(options.p), parseint(options.pn), options.pageclick)); $("#pagenav span.normal").mouseover(function () { document.body.style.cursor = "pointer"; }).mouseout(function () { document.body.style.cursor = "auto"; }); }); }; function renderpage(p, pn, pageclick) { var $page = $(""); if (!p) { p = 1; } if (!pn) { pn = 1; } $page.append(renderbutton("上一页", p, pn, pageclick)); var start = 1; var end = (pn < 10) ? pn : 10; if (p > 8) { $page.append("..."); start = p - 4; var e = p + 4; end = (pn < e) ? pn : e; } for (var i = start; i < end; i++) { $page.append(renderpagelink(i, p, pageclick)); } if (p + 4 < pn) { $page.append("..."); } $page.append(renderpagelink(pn, p, pageclick)).append(renderbutton("下一页", p, pn, pageclick)); return $page; } function renderpagelink(index, p, pageclick) { var $link = $("" + index + ""); index == p ? $link.addclass("current") : $link.addclass("normal").click(function () { pageclick(index); }); return $link; } function renderbutton(btn, p, pn, pageclick) { var $button = $("" + btn + ""); var destpage = 1; switch (btn) { case "上一页": destpage = p - 1; break; case "下一页": destpage = p + 1; break; } if (btn == "上一页") { p <= 1 ? $button.addclass("disabled pagerprev") : $button.addclass("normal pagerprev").click(function () { pageclick(destpage); }); } else { p == pn ? $button.addclass("disabled pagernext") : $button.addclass("normal pagernext").click(function () { pageclick(destpage); }); } return $button; }; $.fn.pagenav.defaults = { width: 700, cssclass: "sabrosus", pretext: "上一页", nexttext: "下一页", p: 1, pn: 1 }; })(jquery);