Javascript在动态创建的DOM对象上动态设置DOM对象事件
以下脚本:Javascript在动态创建的DOM对象上动态设置DOM对象事件,javascript,javascript-events,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); };
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;
}
var containerDIV=document.getElementById(“sampleContainer”);
对于(变量i=0;i<5;i++)
{
var dynamicDIV=document.createElement(“div”);
容器IV.附件(动态)IV;
dynamicDIV.onclick=function(){alert(i);};
dynamicDIV.innerHTML=“行:”+i;
}
单击动态行时,警报框中的输出将为“5”,而不是0、1、
有人知道分配onclick事件的正确方法吗
提前谢谢 您应该使用:
for(变量i=0;i<5;i++){
(职能(一){
dynamicDIV.onclick=函数(){
警报(一);
};
})(i) );
}
演示:谢谢,它确实有效!!我仍然不明白为什么,但我希望在阅读了mozilla dev的文章后得到它:)祝你有一个愉快的一天@steax闭包是JavaScript最重要的特性之一。我建议你读一下。你好
for (var i = 0; i < 5; i++) {
(function(i) {
dynamicDIV.onclick = function() {
alert(i);
};
})(i);
}