无法在新创建的元素上侦听事件

时间:2016-08-07 06:38:25

标签: javascript javascript-events

我无法向新创建的元素添加事件。 以下代码在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)        
}

2 个答案:

答案 0 :(得分:2)

这是功能分配

namesDiv.onclick = function() { alert('a'); } // CORRECT

这是函数调用, alert fn 结果namesDiv.onclick

undefined

更简化的例子

namesDiv.onclick = alert('a'); // WRONG

答案 1 :(得分:1)

您的onclick不是函数,因为您将onclick设置为警报执行的结果。尝试下一步:

namesDiv.onclick = function() {alert("blah")};