1. 程式人生 > 實用技巧 >JS——事件物件

JS——事件物件

什麼是事件物件?

e就是事件物件。

事件物件概述:事件發生以後,會產生一個事件物件,作為引數傳給監聽函式。瀏覽器原生提供一個Event物件,所有的事件都是這個物件的例項,或者說繼承了Event.prototype物件。

Event物件例項屬性:

1 Event.bubbles屬性返回一個布林值,表示當前事件是否會冒泡。該屬性為只讀屬性,一般用來了解 Event 例項是否可以冒泡。

2 Event.eventPhase屬性返回一個整數常量,表示事件目前所處的階段。該屬性只讀

3Event.cancelable屬性返回一個布林值,表示事件是否可以取消。該屬性為只讀屬性,一般用來配和Event.preventDefault()這個例項方法使用

4 Event.currentTarget屬性返回事件當前所在的節點,即事件當前正在通過的節點,也就是當前正在執行的監聽函式所在的那個節點。隨著事件的傳播,這個屬性的值會變。一般輸出最外層的那個。

5Event.target屬性返回原始觸發事件的那個節點,即事件最初發生的節點。這個屬性不會隨著事件的傳播而改變。

currentTarget 與target 的區別?

例如:是currentTarget時

點選son ,因為冒泡,控制檯輸出的時father那個div,說明currentTarget時事件當前正在通過的節點,隨著事件的傳播,這個屬性的值會變。

例如:當使用target時

點選son,輸出的是son那個div,target輸出的是最原始的div。

6Event.type屬性返回一個字串,表示事件型別。事件的型別是在生成事件的時候指定的。該屬性只讀。

7Event.detail返回一個數值,表示事件的某種資訊。具體含義與事件型別相關。比如,對於clickdblclick事件,Event.detail是滑鼠按下的次數(1表示單擊,2表示雙擊,3表示三擊);對於滑鼠滾輪事件,Event.detail是滾輪正向滾動的距離,負值就是負向滾動的距離,返回值總是3的倍數。

總結:(事件物件的屬性可以檢視:當前事件是否可以阻止預設行為,是否可以冒泡,當前事件所處階段,觸發事件的目標節點,事件型別,事件的具體資訊)

Event物件例項方法:

1Event.preventDefault方法取消瀏覽器對當前事件的預設行為。比如點選連結後,瀏覽器預設會跳轉到另一個頁面,使用這個方法以後,就不會跳轉了;

2stopPropagation方法阻止事件在 DOM 中繼續傳播,防止再觸發定義在別的節點上的監聽函式,但是不包括在當前節點上其他的事件監聽函式。