0

我已经绑定了几个这样的事件:

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

有没有一些简单的方法,如果我点击这些东西之一,点击事件会从另一个东西中删除?删除它#window-overlay很简单,但是 $clickedObj 是if块中的一个变量,所以以后可能很难弄清楚处理程序绑定到哪个对象。

4

1 回答 1

1

维护一个要取消绑定事件的 jquery 对象数组,根据您的情况,您可以遍历数组并取消绑定必要的对象...您可以使用简洁的 json 结构作为数组值来帮助您区分不同的绑定事件..类似

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

类别基本上用于对相关事件进行分组,以便您仅取消绑定必要的事件。

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

于 2012-05-23T20:03:13.420 回答