2013-07-26 60 views
-1

這不是"Why does jQuery or a DOM method such as getElementById not find the element?".的重複我有一個表單應該觸發一堆事件但沒有任何函數被調用。我添加了一個僅用於測試目的的按鈕。EventListeners沒有觸發(即使在包含JavaScript後)

的HTML

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset ="utf-8" /> 
    <title>Sign in</title> 
    <link rel="stylesheet" type="text/css" href="main.css" /> 
    <link rel="stylesheet" type="text/css" href="passphrase.css" /> 
</head> 
<body> 
    <noscript> 
     Javascript is disabled. Now redirecting. 
    <meta HTTP-EQUIV="REFRESH" content="0; url=passnojs.html"> 
    </noscript> 
    Welcome. 
    <form method="post" action="prolevel2.php" id="loginForm"> 
     <!--code snipped--> 
     <br /><br /><input type="button" value="big ugly button" id="testing" /> 
    </form> 
    <script src="verify.js"></script><!--this should work because it's after the HTML--> 
</body> 
</html> 

包括外部JavaScript

alert("begining") 
document.getElementById('testing').addEventListener('onclick', display, false) 
alert("here now") 
function display() 
{ 
    alert("now displaying")//doesn't work 
} 

「開頭」 和 「現在這裏」 顯示,但 「現在顯示不是」。控制檯中沒有消息。我究竟做錯了什麼?

+1

使用「點擊」而不是「的onclick」,並添加分號...在所有表情的末尾! – Givi

+0

它現在工作嗎? –

+0

[jsBin](http://jsbin.com/okulok/1/edit) – Givi

回答

2

試試這個

document.getElementById('testing').addEventListener('click', function(){alert("now displaying")}, false); 

document.getElementById('testing').addEventListener('click',display, false); 
+0

有沒有必要添加匿名函數...'....('點擊',顯示...'將工作。 – Givi

+0

是的,他只是忘了實際調用他聲明的函數 – hayonj

+0

ok ......並且這也適用 –

0

你有一個語法錯誤,正如其他人提及。 「onclick」應該是「點擊」。對於違約事件,我更喜歡使用屬性,而不是的addEventListener,如果輸入錯誤會拋出一個適當的語法錯誤:

alert("begining") 
document.getElementById('testing').onclick = display; 
alert("here now") 
function display() 
{ 
    alert("now displaying");//doesn't work 
} 

http://jsfiddle.net/MaxPRafferty/N4qGB/

相關問題