我理解如何删除事件侦听器,但是,如果我想删除带参数的处理程序该怎么办?
我们说我有一个处理程序:
function handler(param1, param2){
// do stuff with param1, param2
}
我通过包装函数将上述处理程序添加到DOM节点
domNode.addEventListener("click", function(){
// invoking the handler here with arguments
handler(this.style.color, this.style.backgroundColor);
}
如何删除上述侦听器之类的内容?
干杯
答案 0 :(得分:3)
您无法使用匿名功能。您将不得不使用命名函数:
function callHandler(){
// invoking the handler here with arguments
handler(this.style.color, this.style.backgroundColor);
}
domNode.addEventListener("click", callHandler);
要删除它,您可以拨打removeEventListener
:
domNode.removeEventListener('click', callHandler);