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

时间:2017-01-18 09:20:16

标签: javascript jquery event-handling jquery-events

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

1 个答案:

答案 0 :(得分:1)

不是。

如果调查本机removeEventListener api,您会发现它期望成功删除原始回调。据我所知,还没有删除节点上所有事件侦听器的本地方法。

jQuery充当了许多功能的中介。这样做是为了使它可以使用onoff之类的东西来保持对其api的控制。

如果您以跟踪添加的方式编写代码,这将不是问题,以便您以后可以执行某种清理步骤;但是,确实会给您带来负担。

现在,如果所有的浏览器都支持getEventListeners,而Chrome确实支持,则情况可能会不同。阅读this,以了解为什么不希望这样做。