我正在尝试使用 javascript 设置 onclick 事件。以下代码有效:
var link = document.createElement('a');
link.setAttribute('href', "#");
link.setAttribute('onclick', "alert('click')");
然后我使用 appendChild 将链接添加到文档的其余部分。
但我显然想要一个比警报更复杂的回调,所以我尝试了这个:
link.onclick = function() {alert('clicked');};
和这个:
link.onclick = (function() {alert('clicked');});
但这无济于事。当我单击链接时,没有任何反应。我已经使用 chrome 进行了测试,并且浏览 DOM 对象显示该元素的 onclick 属性为 NULL。
为什么我不能将函数传递给 onclick?
编辑:
我尝试使用下面建议的 addEventListener 并获得相同的结果。链接的 DOM 将 onclick 显示为 null。
我的问题可能是该元素的 DOM 可能尚未完全构建。此时页面已经加载完毕,用户点击了一个按钮。该按钮执行构建一个新 div 的 javascript,它通过调用 document.body.appendChild 将其附加到页面。此链接是新 div 的成员。如果这是我的问题,我该如何解决?