$.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');
});
};