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返回一個數值,表示事件的某種資訊。具體含義與事件型別相關。比如,對於click
和dblclick
事件,Event.detail
是滑鼠按下的次數(1
表示單擊,2
表示雙擊,3
表示三擊);對於滑鼠滾輪事件,Event.detail
是滾輪正向滾動的距離,負值就是負向滾動的距離,返回值總是3的倍數。
總結:(事件物件的屬性可以檢視:當前事件是否可以阻止預設行為,是否可以冒泡,當前事件所處階段,觸發事件的目標節點,事件型別,事件的具體資訊)
Event物件例項方法:
1Event.preventDefault
方法取消瀏覽器對當前事件的預設行為。比如點選連結後,瀏覽器預設會跳轉到另一個頁面,使用這個方法以後,就不會跳轉了;
2stopPropagation
方法阻止事件在 DOM 中繼續傳播,防止再觸發定義在別的節點上的監聽函式,但是不包括在當前節點上其他的事件監聽函式。