我绑了几个这样的事件:
$('#window-overlay').on('click', overlayClickHandler);
$clickedObj.on('click', overlayClickHandler);
是否有一些简单的方法,如果我点击其中一个东西,点击事件将从另一个东西中删除?从#window-overlay
中删除它很简单,但$ clickedObj是if
块中的变量,因此稍后可能很难弄清楚处理程序绑定的对象。
答案 0 :(得分:1)
维护一个你要取消绑定事件的jquery对象数组,并根据你的条件你可以通过数组并解除必要的绑定...你可以使用一个整洁的json结构作为数组值来帮助你可以区分不同的约束事件......比如
{
eventType: "click",
category: "myCategory1",
object: jqueryObject //or store the selector if you want to keep a low memory footprint..
}
类别主要用于对相关事件进行分组,因此您只需解除绑定所需的事件。
我不确定是否有更简单的选择,但这是一种方法,至少它比找到绑定在其上的事件的所有控件更好