jQueryPager二次搜索分页问题

最近在做一个表格的分页,用到了jQueryPager控件,但是这个控件当你第一次异步搜索的时候,控件不会有问题,当第二次异步搜索出来点击分页就会重复绑定点击事件,意思就是每当你执行一次,就会再在绑定一次点击事件。
下面看源码:
(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 : 15,
current : 1,
backFn : function(){}
},options);
ms.init(this,args);
}
})(jQuery);

上面绑定事件用的是jQuery on 绑定事件,on 事件会重复绑定后执行多次,不知道的了解这篇文章:http://blog.csdn.net/fun913510024/article/details/46971681
所以要让它不要重复绑定事件,那么就要在执行这个on 事件前执行一次取消绑定事件,这样就不会重复绑定了,关于取消绑定事件jQuery 提供有off 事件.

以上得出结论:先取消绑定(off),再绑定(on).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值