JavaScript的BOM關於event

event

event實際上就是一個事件,是瀏覽器自動觸發或者用戶手動觸發的頁面狀態的改變。事件處理函數就是當事件發生時自動調用的函數。在事件發生之前綁定到時間屬性上。關於創建事件函數的話有三種方法。第一個是在HTML中綁定 <ANY οnclick=“alert(‘hello world’);”。第二個的話是爲事件屬性賦值一個函數:document.getElementsByTagName(“div”)[0].onclick = function () {};而第三種方法就是今天我們着重要講的addEventListener。ex:ANY.addEventListener(“事件名”,fun , capture)。capture:是否在捕獲階段提前觸發,默認是false 控制事件觸發的順序。

事件模型

在DOM中一個事件的發生有三個階段,第一個階段是捕獲,它是由外到內,記錄各級父元素上綁定的相同的事件。第二個階段是目標觸發,這個目的就是觸發目標元素上的事件處理函數。最後一個階段就是冒泡,意思按照捕獲順序,反向執行,由內到外,一次觸發各級父元素綁定的事件。

事件對象

事件對象就是當事件發生時自動創建的封裝所有事件信息的一個對象,那麼他是怎麼獲取的呢?在我們的DOM標準裏面事件對象默認作爲事件處理函數的第一個參數傳入。ex:function 處理函數(e/event){…e//在事件發生時,自動獲得事件對象};在IE8裏面的話,在全局window,定義了一個event,ex:function 處理函數(){window.event} 那我們的兼容寫法的話就是function 處理函數(e){e = e || window.event;}。並且我們取消冒泡的話也是兩個標準,在DOM裏面是e.stopPropagation();但是在IE8裏面的話就是e.cancelBubble = true。這兩個也是有兼容寫法的ex:if(e.stopPropagation()){e.stopPropagation()} else{e.cancelBubble = true;}。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章