使用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;
}
});