使用jQuery的重复事件绑定

使用jQuery的重复事件绑定,jquery,events,binding,Jquery,Events,Binding,我在使用jQuery时遇到了重复事件绑定的问题 我有一个菜单项,它通过容器中的Ajax加载部分HTML、JavaScript和CSS代码。代码的每一部分都将事件绑定到中显示的元素。当两次单击菜单元素时,事件绑定将再次完成,因此在调用时会多次触发事件 我用以下方法解决了这个问题: $([el1, el2, el3]).each(function(index, item){$(item).off('click')}); 然后将相应的单击事件重新指定给元素 我认为这应该是一个更优雅的解决方案 我发现

我在使用jQuery时遇到了重复事件绑定的问题

我有一个菜单项,它通过容器中的Ajax加载部分HTML、JavaScript和CSS代码。代码的每一部分都将事件绑定到中显示的元素。当两次单击菜单元素时,事件绑定将再次完成,因此在调用时会多次触发事件

我用以下方法解决了这个问题:

$([el1, el2, el3]).each(function(index, item){$(item).off('click')});
然后将相应的单击事件重新指定给元素

我认为这应该是一个更优雅的解决方案

我发现的另一种方法是使用这个模式

$(document).on('click', '#test-button',function(e) {
    if(e.handled !== true) // This will prevent event triggering more then once
    {
        alert('Clicked');
        e.handled = true;
    }
});

jQuery方法可能就是您正在寻找的方法。我本想将此作为评论,但我没有足够的声誉。

1:为元素的事件附加一个处理程序。每个元素最多执行一次处理程序。这不是我想要的。我需要的是,如果为元素设置了处理程序,它将不再被设置,或者覆盖现有的处理程序。最后,我不想让相同的函数在单击时执行两次。