;(function($){var methods={pageinit:function(options){var opts=$.extend({},$.fn.zpager.defaults,options);return $(this).each(function(k,v){var _v=$(v);_v.data("options",opts);methods.pagedata(_v,opts.current);})},pagedata:function(_v,_current){var opts=_v.data("options");var t=opts.totaldata,p=opts.pagedata,ajaxopts=null;if(opts.ajaxsetdata&&(typeof(opts.ajaxsetdata)==='boolean')){if(opts.url!==''&&typeof(opts.url)==='string'){ajaxopts=methods.ajaxdata(opts.url,_current);t=opts.totaldata=ajaxopts.total;if(ajaxopts.rows.length>0){var ishasdatarender=(opts.datarender&&typeof(opts.datarender)==='function');ishasdatarender?opts.datarender(ajaxopts.rows):methods.datarender(_v,ajaxopts.rows);}}else{$.pageerror(2);}} if(t%p===0){opts.pagecount=parseint(t/p);}else{opts.pagecount=parseint(t/p)+1;} if(opts.pagecount>0){_v.data("options",opts);methods.pagerender(_v,_current);}},datarender:function(_v,_data){var opts=_v.data("options");var cells='';for(var i=0;i<_data.length;i++){cells+='
'+_data[i].id+'-'+math.random()+'';cells+=''+_data[i].title+'';cells+=''+_data[i].starttime+'';cells+=''+_data[i].endtime+'';cells+='
';} if(opts.htmlbox===''||(typeof(opts.htmlbox)!=='obeject')){var abx=_v.prev();if(!abx.hasclass('pagerhtmlwrap')){var d='
';_v.before(d);} _v.prev().html(cells);}else{opts.htmlbox.html(cells);}},pagerender:function(_v,_current){currentpage(_current);var o=_v.data("options");var _page=o.pagecount;var _middle=parseint(o.pagestep/2);var _tep=_middle-2;var _html='';if(_page>o.pagestep&&_current<=_page){_html+=methods.setprevnext(o,'prev');if(_current<=_middle){_html+=methods.foreach(1,o.pagestep,_current,o.active);_html+=methods.ellipsis();}else if(_current>_middle&&_current<(_page-_tep)){_html+=methods.pagebtn(1);_html+=methods.ellipsis();_html+=methods.foreach(_current-_tep,_current-(-_tep)-(-1),_current,o.active);_html+=methods.ellipsis();}else if(_current>=(_page-_tep)){_html+=methods.pagebtn(1);_html+=methods.ellipsis();_html+=methods.foreach(_page-2*_tep-1,_page-(-1),_current,o.active);} _html+=methods.setprevnext(o,'next');}else if(_page<=o.pagestep){if(_page>o.minpage){_html+=methods.setprevnext(o,'prev');} _html+=methods.foreach(1,_page-(-1),_current,o.active);if(_page>o.minpage){_html+=methods.setprevnext(o,'next');}} _v.html(_html);methods.bindevent(_v);},bindevent:function(_v){var o=_v.data("options");var _a=_v.find("a");$.each(_a,function(index,item){var _this=$(this);_this.on("click",function(){if(_this.attr("disabled")){return false;} var _p=_this.attr("page-id");o.current=_p;_v.data("options",o);methods.pagedata(_v,_p);})})},foreach:function(_start,length,_current,curclass){var s='';for(var i=_start;i'+_id+'';},ellipsis:function(){return '...';},pagebtn:function(_id){return ''+_id+'';},addbtn:function(_property,_page,_count){var disabled='';if(_count){disabled=(_page===0||_page===_count-(-1))?'disabled="true"':'';} return '';},setprevnext:function(_o,_type){var s='';function prev(){if(_o.btnshow){s+=methods.addbtn(_o.firstbtn,1);} if(_o.btnbool){s+=methods.addbtn(_o.prevbtn,_o.current-1,_o.pagecount);} return s;} function next(){if(_o.btnbool){s+=methods.addbtn(_o.nextbtn,_o.current-(-1),_o.pagecount);} if(_o.btnshow){s+=methods.addbtn(_o.lastbtn,_o.pagecount);} return s;} return _type==='prev'?prev():next();},ajaxdata:function(_url,_current){var _total=$.fn.zpager.defaults.totaldata;return(function(){var parms={'total':_total,'rows':[]};$.ajax({url:_url,type:'get',data:{"page":_current},datatype:'json',cache:false,async:false,success:function(data){if(data.total&&(data.total!==0)){parms['total']=data.total;parms['rows']=data.rows;}else{$.pageerror(3);}},error:function(xmlhttprequest,textstatus,errorthrown){var msg='';switch(xmlhttprequest.readystate){case 0:msg='(未初始化)还没有调用send()方法';break;case 1:msg='(载入)已调用send()方法,正在发送请求';break;case 2:msg='(载入完成)send()方法执行完成,已经接收到全部响应内容';break;case 3:msg='(交互)正在解析响应内容';break;case 4:msg='(完成)响应内容解析完成,可以在客户端调用了';break;} console.log(textstatus+':'+xmlhttprequest.readystate+'-'+msg);}}) return parms;})();}} $.extend({pageerror:function(type){switch(type){case 1:console.log('method'+method+'dose not exist on jquery.zpager');break;case 2:console.log('no ajax');break;case 3:console.log('no data');break;default:console.log('default error');}}}) $.fn.extend({zpager:function(method){if(methods[method]){return methods[method].apply(this,array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return methods.pageinit.apply(this,arguments);}else{$.pageerror(1);}}}) $.fn.zpager.defaults={totaldata:10,pagedata:5,pagecount:0,current:1,pagestep:8,minpage:5,active:'current',prevbtn:'pg-prev',nextbtn:'pg-next',btnbool:true,firstbtn:'pg-first',lastbtn:'pg-last',btnshow:true,disabled:true,ajaxsetdata:true,url:'',htmlbox:''}})(jquery)