DOM事件深入淺出(一)中,我主要給大家講解了不同DOM級別下的事件處理程序,同時介紹了事件冒泡和捕獲的觸發(fā)原理和方法。本文將繼續(xù)介紹DOM事件中的知識點,主要側重于DOM事件中Event對象的屬性和方法。

那么什么是DOM事件中Event對象呢?事件對象(event object)指的是與特定事件相關且包含該事件詳細信息的對象。我們可以通過傳遞給事件處理程序的參數獲取事件觸發(fā)后所產生的一系列方法和屬性。

Event對象

Event對象其實是一個事件處理程序的參數,當調用事件時,我們只需要將其傳入事件函數就可以獲取。代碼如下:

function getEvent(event) {
    event = event || window.event;
}

 

上面的事件函數傳入了一個名叫Event的參數作為事件對象,同時做了瀏覽器兼容處理。在IE8及以前本版之中,通過設置屬性注冊事件處理程序時,調用的時候并未傳遞事件對象,需要通過全局對象window.event來獲取。所以上述代碼中我們利用 || 來做判斷,如果event對象存在則使用event,不存在則使用window.event。

Event對象包含了幾個方法和多個屬性,通過這些方法和屬性我們可以獲取事件的詳細信息并進行相關處理。

Event對象方法

Event對象主要有以下兩個方法,用于處理事件的傳播(冒泡、捕獲)和事件的取消。

1.stopPropagation

stopPropagation方法主要用于阻止事件的進一步傳播,比如阻止事件繼續(xù)向上層冒泡。

function getEvent(event) {
    event.stopPropagation();
}

child.addEventListener('c