在回调中保存变量的值

时间:2015-08-06 20:27:38

标签: javascript

我有以下代码:

<div id="0">click here</div>
<div id="1">click here</div>
<div id="2">click here</div>

for(var i=0;i<3;i++){

   document.getElementById(i).addEventListener("click",function(){
      alert(i);
   });

}

如何让我的回调功能提醒1,然后是2然后是3?它总是警告3,我需要一种方法来保存每次迭代时“i”的值。

2 个答案:

答案 0 :(得分:0)

全局计数器变量可用于计算点击次数。

var counter = 1;
for(var i=0;i<3;i++){
   document.getElementById(i).addEventListener("click",function(){
      alert(counter++);
   });
}

答案 1 :(得分:0)

for(var i=0;i<3;i++) {
    document.getElementById(i).addEventListener("click", (function(j) { alert(j); }).bind(undefined,i));
}

这个也应该有效:

{{1}}