0

次のフィドルを作成しました。

http://jsfiddle.net/cgoddard/eceGc/1/

そして、作成された 3 つのリンクのそれぞれが番号 (つまり、その時点でオンになっていた番号) を警告するようにするには、何をする必要があるのだろうと考えていiました。

4

1 に答える 1

5

更新されたフィドルを参照してください:http://jsfiddle.net/eceGc/2/

var selectorObject = document.getElementById('selector');
for (var i = 0; i < 3; i++) {
   (function(i) {
       /* all code here */
   }(i));
}

ループの本体をクロージャ(自己実行無名関数)にラップし、現在iを引数として渡します。

コードの問題は、クリックイベントがトリガーされたときに、の値がiループ内の制限に達したため、その値を読み取っているために発生します。


この動作を回避する別の方法は、通常、関数内のループ内のすべてのコードを移動してから、ループ内でその関数を呼び出すことです(常にi変数を引数として渡します)

于 2012-10-04T09:30:12.643 に答える