2015-10-18 42 views
1

基本上我创建了一堆单元格,我试图给每个传递一个变量以在函数内部使用的onclick。但是直接做直接传递'i'变量作为最后一个值,而不是0,1,2,3,4等。这是我正在做的一个片段。将变量传递给for循环中创建的点击函数

for (var i = 0; i < cellCount.length; i++) { 

     var cellName= "cell"+ i 

document.getElementById(cellName).onclick = function() { cellClicked(i) }; 

} 

回答

1

如果您没有“捕获”新范围中的值,回调将从实际的i-计数器读取值。

做这样的事情:

for (var i = 0; i < cellCount.length; i++) { 

    (function(copy_of_i) { 
     var cellName= "cell"+ i 
     document.getElementById(cellName).onclick = function() { cellClicked(copy_of_i)  }; 
    })(i) 
}