2011-11-24 37 views
3

可否请你有一个快速浏览一下示例代码JavaScript - 如何添加onclick事件动态传递一个特定的值?

http://jsfiddle.net/vXvs2/

我不知道,如果它的明确的,但它应该做的是展示创建活动时,什么i了。相反,我认为它的做法是在事件被解雇时显示i的价值。

我该如何解决我的问题?

+0

的[设置的onclick使用的循环变量的当前值(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 
} 

小提琴:http://jsfiddle.net/vXvs2/4/

+0

:)完美,我一直在寻找这个多年。 +1 –

+0

此外,您还可以传递'arr [i]',以防DOM节点被修改。 http://jsfiddle.net/vXvs2/5/ –

相关问题