2014-01-21 3 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, потому что в моем коде я имею XmlHttp запросы, которые могут быть вызваны только после того, как был загружен мой HTML ...

Как я могу это исправить?

ответ

2

Это связано с тем, что в качестве обратного вызова события необходимо назначить функцию . alert('HELLO!') будет вызовет функцию alert и передать ее возвращаемое значение (undefined) в качестве обратного вызова.

Вы хотите сделать это:

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

Избили меня к нему! Например, см. Http://jsfiddle.net/hH5Lh/2/. –

+2

@JoshHarrison: Я ниндзя^~ ^ –

Смежные вопросы