将变量传递给在 for 循环中创建的点击函数

Passing a variable to a click function created in for loop

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

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

        var cellName= "cell"+ i

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

}

如果您不"capture"新范围内的值,回调将从实际的 i-counter 中读取值。

做这样的事情:

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)
}