2011-11-24 4 views
3

はあなたがサンプルコードJavaScript - 特定の値を動的に渡すonclickイベントを追加するにはどうすればよいですか?その明確な場合

http://jsfiddle.net/vXvs2/

を簡単に見てもらえ、私は知りませんが、何行うことになっていますと、イベントが作成されたときにiが何であったかを示しています。代わりに、イベントが発生したときに、iの値が表示されていると思います。

問題をどのように解決できますか?クロージャを作成するための

+0

可能な重複します(http:// stackoverflow.com/questions/6048561/setting-onclick-to-use-current-value-of-variable-in-loop)と数百万の他 – Esailija

答えて

6

ラップ機能でループの身体:

for(var i = 0; i < arr.length; i++){ 
    (function(i){ //i inside this function is a local var; not affected by i++ 
     arr[i].onclick = function(){ 
      alert(i); 
      return false; 
     }; 
    })(i); //Invoke the function, pass variable i 
} 

フィドル:[ループで変数の現在の値を使用するようにonclickの設定]のhttp://jsfiddle.net/vXvs2/4/

+0

:)完璧な、私は年齢のためにこれを探してきました。 +1 –

+0

また、DOMノードが変更された場合に備えて、 'arr [i]'を渡すこともできます。 http://jsfiddle.net/vXvs2/5/ –

関連する問題