我在 JavaScript 工作。在大多数情况下,我已经能够很好地添加事件监听器,但是对于我动态生成的 div,无论我添加什么事件似乎都没有发生。代码是:
for(var i=0; i<sceneNumber; i++){
var a=i;
if(i>2)
a=i%3;
sceneArray[i]=document.createElement('div');
sceneArray[i].className="border"+a;
if(i%2==1)
sceneArray[i].style.left=0;
else
sceneArray[i].style.left=(i+1)*100;
sceneArray[i].style.top = i*100+100;
sceneArray[i].onclick= function(){console.log("fire212");
if(extend1){
console.log("scenelistener");
currentArrow.rotate(degrees);
currentArrow.scale(desiredLength/arrowLength,1);
}
};
console.log(sceneArray[i].onclick);
document.getElementsByTagName('body')[0].appendChild(sceneArray[i]);
sceneArray[i].style.zIndex = -1;
console.log(sceneArray[i]);
}
如您所见,我至少应该在控制台中获得“fire212”,但即使这样也没有发生。可能出了什么问题?
最佳答案
您应该实现类似于 JQuery 的 live() 或 on() 方法的东西。以下帖子可能对您有所帮助。
http://www.alfajango.com/blog/exploring-jquery-live-and-die/
关于javascript - 不会触发已添加到动态创建的 div 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625790/