唯一的事件命名空间
Unique event namespacing
假设您有一个插件,它将滚动事件附加到窗口并将滚动位置与元素的偏移量进行比较。当然,您需要一种方法在不需要时取消绑定该事件。
我想做一些类似的事情:
unbind("scroll.uniqueNamespace")
但是,如果您在多个元素上使用插件,它将使用"scroll.uniqueNamespace"取消绑定所有滚动事件,当我只需要删除一个元素时。
我正在考虑唯一地存储元素和命名空间的数组/对象,但这似乎很混乱。
为了解除绑定特定的侦听器,jQuery接受第二个参数.unbind
.unbind( eventType [, handler(eventObject) ] )
因此,您可以将侦听器函数存储在元素数组中,并在取消绑定时将该侦听器传递给取消绑定方法。像这样:
unbind("scroll.uniqueNamespace", els[el].listener)
另外,重复我对你的问题的评论,但你也可以只添加一个侦听器,并只检查该侦听器中的活动元素。
来源: http://api.jquery.com/unbind/
相关文章:
- 在javascript中使用命名空间
- jQuery事件命名空间是否可以包含破折号
- socket.io:断开连接事件 - “传输关闭”、“客户端命名空间断开连接”、“传输错误”和“强制关闭”
- 唯一的事件命名空间
- 在命名空间中创建自定义事件
- 取消绑定除特定命名空间之外的所有命名空间中的事件
- 具有命名空间的文档上的 jQuery 事件未按预期运行
- JavaScript 打开与命名空间事件
- 了解命名空间的jQuery事件,Bootstrap
- 全局命名空间中事件的最佳实践
- jQuery事件命名空间中所有事件的一个侦听器
- JavaScript命名空间&jQuery事件处理程序
- 命名空间的Backbone.js视图不触发事件
- 是否有一种方法可以仅解除非命名空间事件的绑定
- Javascript/AngularJS中的命名空间事件
- jQuery事件命名空间是如何工作的
- 如何通过命名空间从所有DOM元素中有效地删除事件侦听器
- “;这个“;在JavaScript命名空间和事件侦听器中
- 将某些事件处理程序与命名空间取消绑定
- 命名空间原版 JavaScript 事件,如 jQuery 中的事件