-1

在 for 循环中,我找到了这个遗留代码,我想使用addEventListener("click"...)而不是当前的onclick. 如何转换这段代码?我无法理解如何将函数作为addEventListener方法的第二个参数传递。

el.onclick = (function() {
                  var value="num"+i;
                  //
                  return function() {test(value);}
})();
4

3 回答 3

0

=您将所有内容都放在第二个参数的位置(显然,;末尾除外)的右侧。

于 2012-07-05T13:22:38.020 回答
0
el.addEventListener("click", function(i) {
    var value="num"+i;          
    return function() {
        test(value);
    };
}(i), false);
于 2012-07-05T13:24:45.663 回答
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处理程序包装在一个自执行函数中,因此实际的事件处理程序就是返回的内容。因此,为什么,我刚刚写的代码是一样的。

于 2012-07-05T13:24:55.350 回答