由于第一次写jq插件,中间有借鉴别人的代码。
(function(){ var ms = { fillHtml: function(obj, option) { obj.empty(); var totalPage = option.pageCount, pageHtml = "", dotHtml = "
...", tempHtml = ""; if (option.currentPage > 5) { tempHtml = "
12..."; for(var i = option.currentPage - 2 ; i <= (option.currentPage + 2 > totalPage ? totalPage : option.currentPage + 2); i++) { var temp = "
" +i+ ""; if (option.currentPage === i ) { temp = '
'+ i +''; } if (option.currentPage >= totalPage - 2) { dotHtml = ""; } pageHtml += temp; }; }else { for(var i = 1; i <= ( 6 > totalPage ? totalPage : 6); i++) { var temp = "
" +i+ ""; if (option.currentPage === i ) { //添加选中蓝色背景 temp = '
'+ i +''; }; if (option.currentPage >= totalPage - 2) { dotHtml = ""; } pageHtml += temp; }; } pageHtml = '
'+ ' - 上一页
' + tempHtml + pageHtml + dotHtml + ' - 下一页
'; obj.append(pageHtml); }, bindEvent: function(obj, option) { $(obj).on("click",".page-num",function(){ if ($(this).parent("li") && $(this).parent("li").hasClass('current-page')) { return; } var current = Number( $(this).text() ); //点击的页数 ms.fillHtml(obj, {"currentPage": current, "pageCount": option.pageCount}); option.backFunction(); }); $(obj).on("click",".next-page",function(){ var current = Number( $(".current-page a").text() ); //下一页 if (current === option.pageCount){ return; } ms.fillHtml(obj, {"currentPage": current + 1, "pageCount": option.pageCount}); option.backFunction(); }); $(obj).on("click",".prev-page",function(){ var current = Number( $(".current-page a").text() ); //上一页 if (current === 1){ return; } ms.fillHtml(obj, {"currentPage": current-1, "pageCount": option.pageCount}); option.backFunction(); }); }, init: function(obj, option){ return (function(){ ms.fillHtml(obj, option); ms.bindEvent(obj, option); })(); } }; $.fn.creatPage = function(option) { var initOption = { pageCount: 10, currentPage: 1, backFunction: function(){} }; option.pageCount = Number(option.pageCount); option.currentPage = Number(option.currentPage); var option = $.extend(initOption, option); ms.init(this, option); }})()
HTML
用法
$("#pageCont").creatPage({ pageCount: 18, //总页数 currentPage: 1, //当前选中页 backFunction: function(){ //回调函数 } });