4

是不是可以对JQuery说,哎!在添加此事件处理程序之前取消绑定任何事件处理程序,而无需显式调用 unbind?。

就像是

$("jq selector").click(function() { ...}, true);

其中 true 意味着我想取消绑定设置到元素的所有点击处理程序。我在各种场合都遇到过这种情况,并且由于没有首先解除绑定事件处理程序而出现一些奇怪的行为。

谢谢。

4

3 回答 3

5

使用unbind方法

$("jq selector").unbind('click');

如果要删除与元素关联的所有事件,请不带参数调用 unbind(),它将删除附加到元素的所有处理程序:

$("jq selector").unbind();
于 2012-05-24T15:09:45.200 回答
1
$(selector).die("click").click(function() { ... });
于 2012-05-24T15:10:54.577 回答
0

有很多方法可以做到这一点,但我相信正确的方法是:

$(selector).unbind("click").click(function() { ... });

我将答案归功于Pointy,他在评论中回复,但由于他没有将其添加为答案,我将其分享给社区。

于 2012-06-07T17:37:08.753 回答