-1

addEventListener("click"...)for ループで、このレガシー コードを見つけたので、現在の の代わりに使用したいと考えていますonclick。このコードを変換するにはどうすればよいですか? メソッドの 2 番目の引数として関数を渡す方法がわかりませんaddEventListener

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

3 に答える 3

0

2 番目の引数の場所に、=すべて (明らかに最後の を除く)の右側に配置します。;

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

レガシ コードはwhereが実行されるvalueクロージャを挿入しますが、そこのコードは同じことを行います。test(value)

また、従来のコードではonclickハンドラーが自己実行関数にラップされているため、実際のイベント ハンドラーが返されます。したがって、私が書いたばかりのコードは同じです。

于 2012-07-05T13:24:55.350 に答える