jQuery off方法是否删除了使用addEventListener添加的事件侦听器



我正在处理一个旧代码,我在代码中看到有很多事件是用javascript addEventListener添加的,还有一些是用jQuery.on()添加的,但在同一元素上,但在分离方法中,它只使用jQuery.off()来删除它们。所以我想知道这段代码是否会像编写它的人预期的那样工作(从 dom 元素中删除所有事件),或者使用 javascript 添加的事件不会被删除。

它没有。

如果您调查本机 removeEventListener api,您可以看到它需要原始回调才能成功删除。 据我所知,没有本机方法可以删除节点上的所有事件侦听器。

jQuery充当它所做的大部分事情的中介。 它这样做是为了它可以通过 onoff 之类的东西来保持对其 API 的控制。

如果您以跟踪添加的方式编写代码,以便以后可以执行某种清理步骤,这将不是问题;但是,它确实将责任放在您身上。

现在,如果所有浏览器都支持getEventListeners就像Chrome一样,这可能是另一回事。 阅读本文以了解为什么这是不可取的。

相关内容

  • 没有找到相关文章

最新更新