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
的函数。