可能重复:
在 for 循环中分配点击处理程序
我需要有关代码中循环的帮助。
我遍历一个数组并添加对 div 的点击。但它总是将 onclicks 添加到循环的最后一个循环,并有效地取消之前的循环。
所以我有这个作为我的循环:
    start = 0;
for(i = start; i < (start+8); i++){ //8 per page
    if(i == array.length){ 
        break;  //page end
    } else {
        (function(i){
             document.getElementById('cell'+i).onclick = function(){ select(i); }
        })(i);  
    }
}
这里发生的是 div idcell7获得了点击添加,但 div idcell0没有cell6。我猜这与i循环中的变化有关,因此也会影响i函数中的变化?
我该如何解决这个问题?