我有以下行将click事件添加到具有相同类的项目:
jQuery('.multi_image').click(function(){onMultiImageClicked(jQuery(this));});
我正在使用以下代码尝试取消绑定点击事件:
jQuery('.multi_image').unbind('click');
然而,unbind似乎没有任何效果。
是否可以从像这样的对象类中删除click事件?
答案 0 :(得分:2)
.unbind('click')
必须有效...但我建议使用on
和off
函数:
使用on
和off
功能代替:
jQuery('.multi_image').on("click", function (){
onMultiImageClicked(jQuery(this));
});
和
jQuery('.multi_image').off("click");
off()
方法删除附加了.on()
的事件处理程序。有关详细信息,请参阅该页面上委托和直接绑定事件的讨论。通过提供事件名称,命名空间,选择器或处理函数名称的组合,可以在元素上删除特定事件处理程序。 当给出多个过滤参数时,提供的所有参数必须匹配要删除的事件处理程序。
答案 1 :(得分:0)
来自jQuery docs
Event handlers attached with .bind() can be removed with .unbind().
由于您没有使用bind(),这可能是导致此行为的原因。尝试使用on(),off()或使用bind()在使用unbind()之前绑定click处理程序。