在for循环中,我发现了这个遗留代码,我想使用addEventListener("click"...)
而不是当前的onclick
。我该如何转换这段代码?我无法理解如何将该函数作为addEventListener
方法的第二个参数传递。
el.onclick = (function() {
var value="num"+i;
//
return function() {test(value);}
})();
答案 0 :(得分:0)
你把所有内容放在=
的右侧(显然,除了;
除外)在第二个参数的位置。
答案 1 :(得分:0)
el.addEventListener("click", function(i) {
var value="num"+i;
return function() {
test(value);
};
}(i), false);
答案 2 :(得分:0)
el.addEventListener( 'click', function() {
var value = "num" + i;
test( value );
}, false );
// If you want named functions
el.addEventListener( 'click', someName, false );
function someName() {
var value = "num" + i;
test( value );
}
遗留代码将value
置于执行test(value)
的位置的闭包中,但那里的代码也是如此。
此外,您的遗留代码将onclick
处理程序包装在自执行函数中,因此实际事件处理程序将返回。这就是为什么我刚写的代码是一样的。