我有一个DOM元素,其中使用addEventListener
附加了事件处理程序。当我想用removeEventListener
删除它时,我不再引用处理事件的函数。
除了在全局范围内存储对所有事件处理程序的引用之外,如何删除事件侦听器?
我注意到如果我使用Chrome开发者工具编辑DOM元素,则不再处理该事件。这可能有一个可行的解决方案吗?
在这种特殊情况下,我没有使用并且无法使用像jQuery这样的库。
答案 0 :(得分:1)
在DOM元素中存储对事件处理程序的引用:
e.handlerToRemove = handler;
e.addEventListener( ..., handler );
随后:
e.removeEventListener( e.handlerToRemove );
答案 1 :(得分:0)
你不能;你需要那个参考。要么就像你自己建议的那样全局存储它,要么像Aaron Digulla那样将它存储在DOM元素中。