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).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章