我有一个简单的事件监听器:
function listen(evnt, elem, func) {
if (elem.addEventListener) // W3C DOM
elem.addEventListener(evnt,func,false);
else if (elem.attachEvent) { // IE DOM
var r = elem.attachEvent("on"+evnt, func);
return r;
}
return false;
}
我想用参数设置监听器。(该参数不是由事件设置的,它是特定侦听器的一部分。
我所做的并且似乎有效的是:
function setlistener (param){
listen ('custom event', document,
function (e){
run_func_with_param(param);
}
);
}
但我不明白它是否正确,因为在触发事件时不应该定义参数。
我的问题是 - 每次调用 run_func_with_param 的正确方法是在 setlistener 中为它设置的参数吗?换句话说,当作为事件的结果调用 run_func_with_param 时,是否会记住 param 并将其设置为正确的值?(同一事件将有多个具有不同参数的侦听器)。
注意:请不要使用 jQuery/其他库。在这种情况下,我使用的是自定义事件。