2010-03-03 241 views
9

當我運行以下腳本時,事件始終在頁面加載時觸發。我不確定我在做什麼錯,我創建元素,在DOM中找到它,然後附加一個偵聽器,但它總是在頁面加載時觸發事件,而不是在單擊元素時觸發事件。Javascript「addEventListener」事件在頁面加載時觸發

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", alert("clicktrack"), false); 
</script> 

回答

24
el.addEventListener("click", alert("clicktrack"), false); 

在執行這條線,在alert將被調用和返回undefined。要傳遞警報代碼,您需要將其包裝在一個函數中。

el.addEventListener("click", function() { alert("clicktrack"); }, false); 
1

如何:

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", function() { alert("clicktrack"); }, false); 
</script> 
相關問題