我无法向新创建的元素添加事件。
以下代码在 onload
时执行。
它在页面刷新时显示创建新元素的次数的警报“blah”,但这些元素在加载后不可单击。
有什么想法吗?
for (var S = 0; S < arrInbound[i][3].length; S++){
var namesDiv = document.createElement('div');
namesDiv.id = S;
namesDiv.draggable = 'true';
namesDiv.contenteditable = 'true';
namesDiv.className = "crewNames";
//namesDiv.ondragstart = 'dragStart(event)';
//namesDiv.onblur = 'updateArr(this)';
namesDiv.onclick = alert("blah");
namesDiv.innerHTML = arrInbound[i][3][S];
tagElRight.appendChild(namesDiv)
}
最佳答案
这是函数分配
namesDiv.onclick = function() { alert('a'); } // CORRECT
这是函数调用,namesDiv.onclick
是alert fn的结果,它是未定义
namesDiv.onclick = alert('a'); // WRONG
<小时/>
更简化的示例
var myBar = alert('apple'); //calls alert instantly
var myFoo = function() {
alert('banana');
}
console.log('myBar', myBar); //logs undefined
console.log('myFoo', myFoo); //logs fn
关于javascript - 无法监听新创建的元素上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38811617/