2017-01-31 40 views
1

首先,我很抱歉,因爲我確信這已被多次詢問,我只是不知道如何搜索此內容。JavaScript中的事件處理如何工作?

<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
    </head> 
    <body> 

     <form> 
      <button type="button" onclick="hello()">test1</button> 
      <button type="button" id="test2">test2</button> 
      <h1 id='myText'></h1> 

     <script type="text/javascript"> 
      function hello() { 
       document.getElementById('myText').innerHTML = 'test1'; 
      } 
      document.getElementById('test2').onclick = function(event) { 
       document.getElementById('myText').innerHTML = 'test2'; 
      } 
     </script> 
     </form>  
    </body> 
</html> 

這是我的代碼。在此版本之前,整個腳本標籤在頭部區域內,並且只有test1工作,test2什麼都不做。

  1. 你能指點我在哪裏閱讀爲什麼是這樣嗎?
  2. 此外,是否有這兩種觸發事件的首選方法?

回答

0

這是處理元素的順序。

簡單來說:東西在<head>負載可達中<body>東西之前,同樣地,在東西的<body>頂部將東西之前加載在<body>結束。因此,如果您試圖抓取ID爲test2的元素,則只有在按鈕已在您的<script>之前加載後,您的#test2事件處理程序纔會起作用;否則它在這一點上根本不存在於頁面上。