JS:使用带参数的处理程序删除事件侦听器

时间:2015-03-13 01:38:23

标签: javascript event-listener

我理解如何删除事件侦听器,但是,如果我想删除带参数的处理程序该怎么办?

我们说我有一个处理程序:

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);
}

如何删除上述侦听器之类的内容?

干杯

1 个答案:

答案 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);