我想知道为什么我不能在DOMContentLoaded函数中添加事件监听器,我的问题是他在加载之前触发了点击,然后在之后没有做任何事情:
HTML
<body>
This is a test.<br>
</body>
JS // DOMContentLoaded ...
var btn=document.createElement("BUTTON");
var t=document.createTextNode("CLICK ME");
btn.appendChild(t);
document.body.appendChild(btn);
btn.addEventListener('click',alert('HELLO!'),false);
我做了一个小提琴: http://jsfiddle.net/hH5Lh/
我必须使用DOMContentLoaded,因为在我的代码中我有XMLHTTP请求,只能在我的html加载后触发...
我该如何解决这个问题?
答案 0 :(得分:2)
这是因为您需要将函数指定为事件回调。 alert('HELLO!')
将调用 alert
函数并将其返回值(undefined
)作为事件回调传递。
你想这样做:
btn.addEventListener('click', function(){
alert('HELLO!');
}, false);