removeEventListener不知道该函数

时间:2014-11-10 14:00:16

标签: javascript jquery event-listener

部分第三方插件会将eventListener附加到网站中。如何在不知道附加的函数的情况下删除eventListener。

我引用此removeEventListener但我无法获得任何移除此信息的线索。

例如:getEventListeners(window)显示附加的事件。但是,当我尝试使用window.removeEventListener("eventname")删除事件时,如果不知道该功能,则无法正常工作。

请帮助,提前致谢。

2 个答案:

答案 0 :(得分:15)

getEventListeners(window)将返回事件地图及其注册的事件监听器。

因此,对于DOMContentLoaded事件,您可以拥有许多事件侦听器。如果您知道要删除的侦听器的索引(或者只存在一个),则可以执行以下操作:

var eventlistener = getEventListeners(window)["DOMContentLoaded"][index];
window.removeEventListener("DOMContentLoaded", 
                           eventlistener.listener,
                           eventlistener.useCapture);

答案 1 :(得分:7)

不幸的是,你不能这样做。您需要引用事件处理函数,以便removeEventListener删除它。

如果您无法获得该引用,则唯一的选择是完全替换Node