我有一个创建事件监听器的函数:

document.addEventListener(name, handler.bind(null, name, callback), false);

我使用.bind传递额外的参数,但是当我尝试删除它时:
document.removeEventListener(name, handler, false);
// or
document.removeEventListener(name, handler.bind(null), false);

并未实际删除。我已经尝试了各种修复程序,但似乎无法正常工作。

最佳答案

您需要保存对绑定(bind)函数的引用,以便稍后可以使用它来调用removeEventListener:

const boundHandler = handler.bind(null, name, callback);
document.addEventListener(name, boundHandler, false);

// later:

document.removeEventListener(name, boundHandler, false);

关于javascript - 问题与document.removeEventListener(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55214246/

10-15 14:39