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

时间:2015-10-18 15:04:15

标签: javascript function variables click

基本上我创建了一堆单元格,我试图为每个传递一个变量的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) };

}

1 个答案:

答案 0 :(得分:1)

如果你没有&#34;捕获&#34;在新范围中的值,回调将从实际的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)
}