我正在尝试使用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为空。
我的问题可能是该元素的DOM可能尚未完全构建。此时页面已加载,用户单击按钮。按钮执行JavaScript代码,构建一个新的div并通过调用document.body.appendChild将其附加到页面上。此链接是新div的成员。如果这是我的问题,我该如何解决它?
addEventListener('click', function() {...})
。 - David G