(function(){ function init(dom,arg){ if(arg.current <= arg.pageCount){ fillhtml(dom,arg); bindEvent(dom,arg); }else{ alert('请输入正确的页码') } } function fillhtml(dom,arg){ dom.empty(); if(arg.current > 1){ dom.append('<a class="prePage" href="#">上一页</a>'); }else { dom.remove('.prePage'); dom.append('<span class="noPre">上一页</span>'); } if(arg.current != 1 && arg.current > 3){ dom.append('<a class="tcdNum" href="#">1</a>'); } if(arg.current-3 > 1){ dom.append('<span>...</span>'); } var start = arg.current-2; var end = arg.current+2; for(;start <= end;start++){ if(start >= 1 && start <= arg.pageCount){ if(start == arg.current){ dom.append('<span class="current">'+start+'</span>'); } else { dom.append('<a class="tcdNum" href="#">'+start+'</a>'); } } } if(arg.current+3 < arg.pageCount){ dom.append('<span>...</span>'); } if(arg.current != arg.pageCount && arg.current < arg.pageCount-2){ dom.append('<a class="tcdNum" href="#">'+arg.pageCount+'</a>'); } if(arg.current < arg.pageCount){ dom.append('<a class="nextPage" href="#">下一页</a>'); }else { dom.remove('.prePage'); dom.append('<span class="noPre">下一页</span>') } } function bindEvent(dom,arg){ dom.on('click','.prePage',function(){ var cur=parseInt(dom.children('.current').text()); fillhtml(dom,{'current':cur-1,'pageCount':arg.pageCount}); if(typeof arg.backFn=='function'){ arg.backFn(cur-1); } }) dom.on('click','.tcdNum',function(){ var cur=parseInt($(this).text()); fillhtml(dom,{'current':cur,'pageCount':arg.pageCount}); if(typeof arg.backFn=='function'){ arg.backFn(cur); } }) dom.on('click','.nextPage',function(){ var cur=parseInt(dom.children('.current').text()); fillhtml(dom,{'current':cur+1,'pageCount':arg.pageCount}); if(typeof arg.backFn=='function'){ arg.backFn(cur+1); } }) } $.fn.create=function(option){
var arg=$.extend({ pageCount:10, current:2, backFn:function(){} },option) init(this,arg); } })(jQuery);
|