如何将参数传递给命名的事件处理程序

时间:2014-11-21 07:40:38

标签: javascript javascript-events event-handling

我知道您可以使用闭包和匿名函数将参数传递给事件处理程序,例如:

function addClick(el, a, b) {
    el.addEventListener('click', function(e) {
        //a and b are available here
    });
}

但问题是,当你这样做时,你不能删除事件监听器,因为它是匿名的。可能需要能够传递参数并在某些时候删除处理程序,所以我想知道这是否可能以某种方式,或者是否有另一种方法来实现相同的目的。

我唯一能想到的就是向处理程序添加属性并以这种方式访问​​它们:

var handler = function() {
    console.log(handler.a);
    console.log(handler.b);
}

handler.a = 'argument1';
handler.b = 'argument2';

el.addEventListener('click', handler);

0 个答案:

没有答案