$.fn.pagination = function(_opts){ var opts = $.extend({ curl : "", durl : "", mdiv : "", pdiv : "", perPage : 6, param : {} },_opts); var status = { recordCount : 0, totalPage : 0 }; return this.each(function(){ var currPage,panel = $(this).css({'text-align':'center'}); function _loadPage(cpage){ panel.html("加载中").unbind('click'); currPage = cpage; opts.param = $.extend(opts.param,{currPage:cpage,pageSize:opts.perPage}); $.post(opts.durl,opts.param,function(data){ if(opts.dataHandler) { opts.dataHandler(data); } else { if(opts.mdiv)$('#'+opts.mdiv).append(data); } if(opts.callback)opts.callback(currPage,status.totalPage,status.recordCount); _render(); }); } function _gotoPage(page){ return function(){ _loadPage(page); }; } function _render(){ if(currPage == status.totalPage){ panel.html("没有了").unbind('click'); }else{ panel.html("加载更多").bind('click',_gotoPage(currPage+1)); } } //开始执行 $.post(opts.curl,opts.param,function(json){ //每次新的查询,都移除panel的click事件 panel.unbind('click'); //设置翻页 var total = json; if(total==0){ panel.html("暂无数据").show(); if(opts.callback)opts.callback(0,0,0); }else{ status.recordCount = total; status.totalPage = Math.ceil(total/opts.perPage); //放置第一页 _loadPage(1); //if(total>opts.perPage){ // $('#'+opts.pdiv).show(); //}else{ // $('#'+opts.pdiv).hide(); //} $('#'+opts.pdiv).show(); } },'json'); }); };