以下脚本:
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
事件的正确方法?
你应该使用闭包功率:
for (var i = 0; i < 5; i++) {
(function(i) {
dynamicDIV.onclick = function() {
alert(i);
};
})(i);
}
演示:http://jsfiddle.net/zvPfZ/