當咱們觸發了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 }