将变量传递给在 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)
}
基本上我创建了一堆单元格,我试图将 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)
}