0

以下脚本:

var containerDIV = document.getElementById("sampleContainer");

for(var i = 0; i < 5; i++)
{
    var dynamicDIV = document.createElement("div");
    containerDIV.appendChild(dynamicDIV);   
    dynamicDIV.onclick = function() { alert(i); };
    dynamicDIV.innerHTML = "Row: " + i;
}

单击动态行时,警报框中的输出将始终为“5”而不是 0、1、..

有谁知道分配 onclick 事件的正确方法?

提前致谢!

4

1 回答 1

1

您应该使用关闭电源

for (var i = 0; i < 5; i++) {
    (function(i) {
        dynamicDIV.onclick = function() {
            alert(i);
        };
    })(i);
}

演示:http: //jsfiddle.net/zvPfZ/

于 2012-12-05T15:15:07.740 回答