使用jQuery重复事件绑定

时间:2014-03-24 16:32:35

标签: jquery events binding

使用jQuery时遇到重复事件绑定问题。

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

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

$([el1, el2, el3]).each(function(index, item){$(item).off('click')});

然后将相应的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;
    }
});

1 个答案:

答案 0 :(得分:0)

jQuery .one()方法可能是您正在寻找的方法。我已将此作为评论,但我没有足够的声誉。