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