0

重複の可能性:
Javascript: ループの閉鎖?

疑似 JavaScript:

for (i, i<10, i++) {
  new element.addEvent('click', function(){ alert(i) }).inject(dom)
}

ループが終了すると、すべての onclick イベントが「最終」値 i でアラートをトリガーします。onclick イベントが追加されたときのように、 i の値を警告する「正しい」方法は何ですか?

私が正しいと言うのは、この動作を実現する方法がいくつかあることを認識しているということですが、標準的な (つまり、コードに遭遇する可能性のある人々が期待する) 方法を知りたいということです。ありがとう。

4

1 に答える 1

3

クロージャーを使用して、i反復ごとに の値を取得します。

for (i; i<10; i++) {
    (function(i) {
         new element.addEvent('click', function(){ alert(i) }).inject(dom);
    }(i));
}
于 2012-06-19T07:44:20.290 に答える