2010-06-18 95 views
0

一旦#theButton被點擊,應該觸發一個提醒。爲什麼沒有使用以下方法觸發任何事件? 在此先感謝。JavaScript事件沒有被解僱

<html> 
    <head> 
     <script type="text/javascript" language="javascript"> 

     var theButton = document.getElementById("theButton"); 

     theButton.onclick = function(){alert("Clicked!");} 
     theButton.onclick = clickAlert; 
     theButton.onclick(alert("Clicked!")); 

     function clickAlert(){ 
     alert("Clicked!"); 
     } 
     </script> 
    </head> 
    <body> 
     <input type="button" id="theButton"> 
    </body> 
    </html> 
+0

注重細節是在編程很重要,缺乏對細節的關注顯示了某些缺乏職業精神。拼寫錯誤和錯誤拼寫功能名稱表示對細節缺乏關注。此外,您的邏輯有缺陷,您在按鈕實際存在之前一遍又一遍地分配相同的內容。 – 2010-06-18 20:45:08

+0

如果你之前寫過這樣的話,我會一直很好,因爲我會從中學到一些東西。但諷刺並沒有教導任何東西。 – Babiker 2010-06-18 20:53:10

回答

2

你有三個問題

  1. 你拼錯function第7行(這會產生一個運行時錯誤,順便說一句)
  2. 您嘗試訪問節點#theButton它在DOM可用之前。就拿佩卡的建議爲這一個
  3. 您覆蓋onclick財產上的8號線 - 不知道,如果你這樣做的目的還是什麼
1

因爲theButton當你運行你的腳本不存在了嗎?

將它包裝到body的onload事件或jQuery的ready()中。

+0

jQuery的'ready()'是'DOMContentLoaded'事件的封裝,而不是'laod'事件。 – Crozin 2010-06-18 20:48:16

+0

@Crozin我知道,但是IIRC,在瀏覽器中獲得沒有jQuery的'DOMContentLoaded'非常困難。儘管如此,你是對的。 – 2010-06-18 20:50:16

+0

你的意思是不存在的? – Babiker 2010-06-18 21:03:15

1

嘗試將其封裝在document.Ready()函數中。

+0

這不一定存在 - OP不使用jQuery。 – 2010-06-18 20:41:13

1

我喜歡jQuery.ready()的答案,但我相信你也可以移動<script>阻止某些點擊您在頁面末尾處釋放按鈕。

+0

...或使用'onload'事件。 – 2010-06-18 20:42:54

1

它的工作原理,如果你把輸入標籤中的onclick(和拼寫正確的事情):

<html> 
    <head> 
     <script type="text/javascript" language="javascript"> 



     function clickAlert(){ 
     alert("Clicked!");  

     } 

     </script> 
    </head> 
    <body> 
     <input type="button" id="theButton" NAME="theButton" onclick="clickAlert()"> 
    </body> 
    </html>