2015-10-18 40 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) 
}