2014-01-21 27 views
0

我想知道爲什麼我不能添加事件監聽器我DOMContentLoaded函數內部DOMContentLoaded,我的問題是,他射擊它加載前單擊,然後沒有做任何事情後:用的addEventListener

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因爲我的代碼我有我的HTML已經被加載後,才能觸發XMLHTTP請求...

我該如何解決這個問題?

回答

2

這是因爲您需要分配一個函數作爲事件回調。 alert('HELLO!')調用alert函數並將其返回值(undefined)作爲事件回調。

你想這樣做:

btn.addEventListener('click', function(){ 
    alert('HELLO!'); 
}, false); 
+1

打我吧!例如見http://jsfiddle.net/hH5Lh/2/。 –

+2

@JoshHarrison:我是忍者^〜^ –