JavaScript學習總結5--事件對象

當咱們觸發了DOM上的某個事件(onclick,onmouseover等)時,會自動產生一個事件對象event,這個對象中包含着全部與事件有關的信息,包括觸發事件的DOM元素,事件類型以及其餘與特定事件相關的信息瀏覽器

全部瀏覽器都支持event對象,但方式有所不一樣this

1.DOM中的事件對象spa

兼容DOM的瀏覽器會將event對象傳入到事件處理程序中
code

例如:對象

//省略以前代碼
oBtn.addEventListener('click',function(event){
    console.log(event.type);          //click 
},false)

這個例子中的事件處理程序會在控制檯輸出事件的類型(event.type),這個屬性則包含被處罰的事件類型blog

根據事件的類型,不一樣的事件會有不一樣的屬性和方法,不過全部事件都會有如下屬性或方法seo

屬性/方法 類型 讀/寫 說明
bubbles Boolean 只讀 代表事件是否冒泡
cancelable Boolean 只讀 代表是否能夠取消事件的默認行爲
currentTarget Element 只讀 其事件處理程序當前正在處理事件的那個元素
defaultPrevented Boolean 只讀 爲true表示已經調用了preventDefault()
detail Interger 只讀 與事件相關的細節信息
eventPhase Interger 只讀 調用事件處理程序的階段1表示捕獲階段,2表示「處於目標「,3表示冒泡階段
preventDefault() Function 只讀 取消事件默認行爲
stopImmediatePropagation() Function 只讀 取消事件的進一步捕獲或者冒泡
stopPropagation() Function 只讀 取消事件的進一步捕獲或者冒泡
target Element 只讀 事件的目標
trusted Boolean 只讀 爲true表示事件時瀏覽器生成的,false表示事是人爲建立的
type String 只讀 被觸發的事件類型
view AbstractView 只讀 與事件關聯的抽象視圖,等同於發生事件的window對象

事件處理程序的內部,對象this始終等於currentTarget的值,而target只包含事件的實際目標(currentTarget爲實際觸發事件的元素,target爲綁定事件的元素)事件

//省略以前代碼
oBtn.onclick=function(event){
    console.log(event.currentTarget===this);    //true
    console.log(event.target===this);              //true
}
相關文章
相關標籤/搜索