取消绑定处理程序

时间:2015-12-07 18:41:22

标签: jquery

所以,我有以下js:

function SOME_FUNCTION() 
{           
jQuery('.done').unbind('click').click(function(e) { 
// jQuery(document).on( 'click', '.done', function(e) {
...
success : function(data){                               
        alert('done');
        return false;
        }
    });         
  }
 // e.stopPropagation();
});     

}

因此,“class="done"”通过ajax(新内容)加载,看起来多次添加处理程序。我试过“unbind”,“off”等,但我仍然收到多个警报('完成');

我做错了什么?有没有办法简单地删除这个类的所有处理程序?或者只在点击时添加处理程序?

修改

只要单击“.button”,就会调用SOME_FUNCTION函数。

function BUTTON_FUNCTION()
{           
// jQuery('.button').unbind('click').click(function(e) {
 jQuery(document).on( 'click', '.button', function(e) {                         
    ...
    success: function(data){                        
      SOME_FUNCTION();                                                          
    },          
});     
}

1 个答案:

答案 0 :(得分:1)

删除函数只需在文档就绪函数中直接调用它:

jQuery(document).on( 'click', '.done', function(e) {
...
success : function(data){                               
        alert('done');
        return false;
        }
    });         
  }
});  

动态添加或不添加类.done的所有元素只有一个单击事件将其绑定到它