如何快速取消绑定任何附加的事件?

时间:2012-05-23 19:57:11

标签: jquery

我绑了几个这样的事件:

$('#window-overlay').on('click', overlayClickHandler);
$clickedObj.on('click', overlayClickHandler);

是否有一些简单的方法,如果我点击其中一个东西,点击事件将从另一个东西中删除?从#window-overlay中删除它很简单,但$ clickedObj是if块中的变量,因此稍后可能很难弄清楚处理程序绑定的对象。

1 个答案:

答案 0 :(得分:1)

维护一个你要取消绑定事件的jquery对象数组,并根据你的条件你可以通过数组并解除必要的绑定...你可以使用一个整洁的json结构作为数组值来帮助你可以区分不同的约束事件......比如

{
eventType: "click",
category: "myCategory1",
object: jqueryObject //or store the  selector if you want to keep a low memory footprint..
}

类别主要用于对相关事件进行分组,因此您只需解除绑定所需的事件。

我不确定是否有更简单的选择,但这是一种方法,至少它比找到绑定在其上的事件的所有控件更好