Javascript在动态创建的DOM对象上动态设置DOM对象事件

时间:2012-12-05 15:13:51

标签: javascript javascript-events

以下脚本:

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事件的正确方法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您应该使用the closure power

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

DEMO: http://jsfiddle.net/zvPfZ/