我有一个创建事件监听器的函数:
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/