唯一事件命名空间

时间:2013-12-18 22:47:46

标签: javascript jquery

假设您有一个插件将滚动事件附加到窗口并将滚动位置与元素(此)偏移量进行比较。当然,如果不需要,您可能需要一种解除该事件的方法。

我想做类似的事情:

unbind("scroll.uniqueNamespace")

但是,如果你在多个元素上使用插件,它将使用“scroll.uniqueNamespace”取消绑定所有滚动事件,当我需要它只删除一个元素时。

我正在考虑存储元素的数组/对象,并且每个元素都唯一地命名,但这看起来很混乱。

1 个答案:

答案 0 :(得分:1)

要取消绑定特定侦听器,jQuery接受.unbind

中的第二个参数
.unbind( eventType [, handler(eventObject) ] )

因此,您可以将侦听器函数存储在元素数组中,解除绑定后,将该侦听器传递给unbind方法。类似的东西:

unbind("scroll.uniqueNamespace", els[el].listener)

另外,重复我对你的问题的评论,但你也可以只添加一个监听器,只检查该监听器内的活动元素。

来源:http://api.jquery.com/unbind/