首頁 >web前端 >js教程 >javascript相關事件的幾個概念_javascript技巧

javascript相關事件的幾個概念_javascript技巧

WBOY
WBOY原創
2016-05-16 15:58:081058瀏覽

客戶端javascript程式採用了非同步事件驅動程式設計模型。

相關事件的幾個概念:

  事件類型(event type):用來說明發生什麼類型事件的字串;

  事件目標(event target):發生事件的物件;

  事件處理程序(event handler):處理或回應事件的函數;

  事件物件(event object):與特定事件相關且包含有關該事件詳細資訊的物件;

  事件傳播(event propagation):瀏覽器決定哪個物件出發其事件處理程序的過程;

註冊事件處理程序:

  1、設定javascript物件屬性;

  2、設定html標籤屬性

  3、addEventListener或attachEvent(後者為IE的)

 function addEvent(target,type,handler){
   if(target.addEventListener){
     target.addEventListener(type,handler,false);
   }else{
     target.attachEvent("on"+type,function(event){return handler.call(target,event)});
   }
 }

 事件傳播的三個階段:

  1、發生在目標處理函數之前,稱為‘捕獲'階段;

  2、物件本身的處理事件的呼叫;

  3、事件的冒泡階段;

在javascript中,可以為某個元素指定事件指定的方式有以下三種:

1、在html中,使用onclick屬性
2.在javascript中,使用onclick屬性
3.在javascipt中,使用addEvenListener()方法

三種方法的比較

(1)在第二、三種方法中,可以向函數傳入一個event對象,並讀取其對應屬性,而方法一不可以。
(2)首選第二、三種,第一種不利於將內容與事件分離,也不能使用event物件的相關內容。

一些文法細節

(1)在第一種方法中,onclick大小寫無關,但在第二種方法中,必須使用小寫。因為HMTL對大小寫不敏感,而JS則會區分大小寫。
(2)在第二、三種方法中,指定函數名稱時沒有雙引號,而第一種作為一個HTML屬性,需要雙引號。
(3)第一種方法需要括號,第二、三種不需要。

 onclick="clickHandler()"
 document.getElementById("jsOnClick").onclick = clickHandler2; 
 document.getElementById("addEventListener").addEventListener("click", clickHandler2);

完整程式碼:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Even Deom</title> 
 
</head> 
<body> 
 <button id="htmlOnClick" onclick="clickHandler()">htmlOnClick</button> 
 <button id="jsOnClick">jsOnClick</button> 
 <button id="addEventListener">addEventListener</button> 
  
 <script defer> 
 function clickHandler() { 
 alert("onclick attribute in html"); 
 } 
 function clickHandler2(e) { 
 alert(e.target.innerHTML); 
 } 
 document.getElementById("jsOnClick").onclick = clickHandler2; 
 document.getElementById("addEventListener").addEventListener("click", 
  clickHandler2); 
</script> 
</body> 
</html> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn