我以動態方式上單擊事件創建按鈕的方式如下:在一個循環中添加事件偵聽器與參數
//add button
for(i=1;i<=narrow+1;i++){
var btn = document.createElement("BUTTON");
btn.id="element"+i;
var t = document.createTextNode("3D View");
btn.appendChild(t);
btn.style.position="absolute";
btn.style.top="520px";
btn.style.left=100+120*(i-1)+"px";
btn.addEventListener('click', function(){window.alert(i-1+" "+nmol[i-1]);});
創建的按鈕都不錯,但在的addEventListener事件的函數的參數似乎沒有完全可以增加。當我打印我留下價值1.
任何人都可以解釋我爲什麼?
感謝
另見http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example –
https://developer.mozilla.org/en -US/docs/Web/JavaScript/Guide/Closures#Creating_closures_in_loops.3A_A_common_mistake –