//分页插件
/**
ch
**/
(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();
//上一页
if(args.current > 1){
obj.append('上一页');
}else{
obj.remove('.prevpage');
obj.append('上一页');
}
//中间页码
if(args.current != 1 && args.current >= 4 && args.pagecount != 4){
obj.append(''+1+'');
}
if(args.current-2 > 2 && args.current <= args.pagecount && args.pagecount > 5){
obj.append('...');
}
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(''+ start +'');
}else{
obj.append(''+ start +'');
}
}
}
if(args.current + 2 < args.pagecount - 1 && args.current >= 1 && args.pagecount > 5){
obj.append('...');
}
if(args.current != args.pagecount && args.current < args.pagecount -2 && args.pagecount != 4){
obj.append(''+args.pagecount+'');
}
//下一页
if(args.current < args.pagecount){
obj.append('下一页');
}else{
obj.remove('.nextpage');
obj.append('下一页');
}
})();
},
//绑定事件
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});
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});
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});
if(typeof(args.backfn)=="function"){
args.backfn(current+1);
}
});
})();
}
}
$.fn.createpage = function(options){
var args = $.extend({
pagecount : 10,
current : 1,
backfn : function(){}
},options);
ms.init(this,args);
}
})(jquery);