2014-01-21 70 views
6

不工作我學習的addEventListener,我測試的例子之一,但其不工作。可有人告訴我,我做錯了的addEventListener在javascript

<html> 
<head> 
<script type="text/javascript"> 
function click_handler1() { alert("click_handler1"); } 
function click_handler2() { alert("click_handler2"); } 

    document.getElementById("id1").addEventListener("click", click_handler1, false); 
    document.getElementById("id2").addEventListener("click", click_handler2, false); 

//window.addEventListener("load", setup, false); 
</script> 
</head> 
<body> 
<a id="id1">some stuff</a> 
<a id="id2">stuff</a> 
</body> 
</html> 

感謝

+0

將EventListeners置於window.onload函數中 –

回答

7

你的元素不因爲您在添加元素之前正在執行JavaScript。 嘗試移動腳本體的底部:

<html> 
<head> 
</head> 
<body> 
<a id="id1">some stuff</a> 
<a id="id2">stuff</a> 
<script type="text/javascript"> 
function click_handler1() { alert("click_handler1"); } 
function click_handler2() { alert("click_handler2"); } 

    document.getElementById("id1").addEventListener("click", click_handler1, false); 
    document.getElementById("id2").addEventListener("click", click_handler2, false); 

//window.addEventListener("load", setup, false); 
</script> 
</body> 
</html> 
5

移動這個文檔的末尾,或有有載功能,把它包:

window.addEventListener('load',function(){ 
    document.getElementById("id1").addEventListener("click", click_handler1, false); 
    document.getElementById("id2").addEventListener("click", click_handler2, false); 
}); 

您的代碼不會因爲工作DOM還沒有準備好,你已經試圖獲取id1和id2。

1

你的代碼拋出下面的錯誤控制檯: 遺漏的類型錯誤:無法調用空 的方法「的addEventListener」,它指出你需要先定義你的HTML元素(在這種情況下錨),然後調用它的方法。

你正在做的是 - 首先調用方法(在這種情況下爲addEventListener)並在稍後定義html元素(在這種情況下爲錨點)。

<html> 
    <head></head> 
    <body> 
    <a id="id1">some crap</a><br> 
    <a id="id2">crap</a> 
    <script type="text/javascript"> 
    function click_handler1() { alert("click_handler1"); } 
    function click_handler2() { alert("click_handler2"); } 

    document.getElementById("id1").addEventListener("click", click_handler1); 
    document.getElementById("id2").addEventListener("click", click_handler2); 
    </script> 
    </body> 
    </html> 
相關問題