【发布时间】:2012-10-18 00:22:43
【问题描述】:
我想在 .piece 类上添加鼠标事件,即使 div 是在加载 DOM 之后创建的。
这是我的实际循环:
var piece = document.getElementsByClassName('piece');
function theLoop() {
for(var i=0; i<piece.length; i++) {
piece[i].addEventListener("mousemove", function(event) {
//do stuff
}
}
}
theLoop();
它工作正常,但如果我在加载 DOM 后添加带有 .piece 类的新 div,循环会忽略它们。
我用.cloneNode() 和.appendChild() 添加这些新的div,像这样:
function createPiece(symbol, name) {
var clone = document.getElementById(symbol).cloneNode(true);
clone.setAttribute('id',symbol+'-'+name);
document.getElementById(name).appendChild(clone);
}
createPiece(symbol, name);
所有原始克隆的 div 都有 .piece 类。
如何将这些新的 div 添加到我的 for 循环中,并将鼠标事件附加到它们?
谢谢。
【问题讨论】:
-
“循环忽略它们”是什么意思?你什么时候运行那个循环?您确定新元素已成功添加吗?
标签: javascript loops for-loop mouseevent appendchild