Javascript JS:删除具有接受参数的处理程序的事件侦听器

Javascript JS:删除具有接受参数的处理程序的事件侦听器,javascript,event-listener,Javascript,Event Listener,我了解如何删除事件侦听器,但是,如果要删除接受参数的处理程序,该怎么办 假设我有一个处理程序: function handler(param1, param2){ // do stuff with param1, param2 } 我通过包装器函数将上述处理程序添加到DOM节点 domNode.addEventListener("click", function(){ // invoking the handler here with arguments handler

我了解如何删除事件侦听器,但是,如果要删除接受参数的处理程序,该怎么办

假设我有一个处理程序:

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);
}
我该如何去除上面的听众


干杯

您不能使用匿名函数。您必须改用命名函数:

function callHandler(){
    // invoking the handler here with arguments
    handler(this.style.color, this.style.backgroundColor);
}

domNode.addEventListener("click", callHandler);
要删除它,您可以调用
removeEventListener

domNode.removeEventListener('click', callHandler);

不能使用匿名函数。您必须改用命名函数:

function callHandler(){
    // invoking the handler here with arguments
    handler(this.style.color, this.style.backgroundColor);
}

domNode.addEventListener("click", callHandler);
要删除它,您可以调用
removeEventListener

domNode.removeEventListener('click', callHandler);

handler
在技术上不是一个“处理程序”,而是一个名为
handler
handler
函数,在技术上不是一个“处理程序”,而是一个名为
handler
函数。