DOM事件模型的最獨特的性質是,文本節點也觸發事件(在IE中不會)
1、冒泡事件流
當事件在某一DOM元素被觸發時,例如用戶在客戶名位元組點上點擊滑鼠,事件將跟隨著該節點繼承自的各個父節點冒泡穿過整個的DOM節點層次,直到它遇到依附有該事件類型處理器的節點,此時,該事件是onClick事件。在冒泡過程中的任何時候都可以終止事件的冒泡,在遵從W3C標準的瀏覽器里可以通過調用事件對象上的stopPropagation()方法,在Internet Explorer里可以通過設定事件對象的cancelBubble屬性為true。如果不停止事件的傳播,事件將一直通過DOM冒泡直至到達文檔根。
如果想創建一個捕捉事件,在支持W3C 事件模型的瀏覽器中,將addEventListener的第三個參數設為true就好了。例如:
前一陣因為想弄懂事件捕捉,所以做了點小實驗,分別在Firefox 2、Safari 3 on Windows和Opera 9上實踐了事件捕捉(當然,因為IE不支持事件捕捉,所以…),實驗的原理見下圖:
ID為div1和div2的兩個元素都被委派了捕捉階段的事件處理函式,這樣:
當點擊#div1(藍色區域)時,應該會alert出”div1″
當點擊#div2(黃色區域)時,應該會先alert出”div1″,再alert出”div2″,因為在事件捕捉階段,事件是從根元素向下傳播的,#div1是#div2的父元素,自然綁定在#div1上的click事件也會先於#div2上的click事件被執行
然而,以上的構想只試用於Firefox 2和Safari 3 on Windows,在Opera 9中,事情會變成這樣:
當點擊#div1(藍色區域)時,什麼都不會發生
當點擊#div2(黃色區域)時,會alert出”div1″,隨後什麼都不會再發生
2、捕獲事件流
事件的處理將從DOM層次的根開始,而不是從觸發事件的目標元素開始,事件被從目標元素的所有祖先元素依次往下傳遞。在這個過程中,事件會被從文檔根到事件目標元素之間各個繼承派生的元素所捕獲,如果事件監聽器在被註冊時設定了useCapture屬性為true,那么它們可以被分派給這期間的任何元素以對事件做出處理;否則,事件會被接著傳遞給派生元素路徑上的下一元素,直至目標元素。事件到達目標元素後,它會接著通過DOM節點再進行冒泡。
相關詞條
-
冒泡事件流
DOM事件標準定義了兩種事件流,這兩種事件流有著顯著的不同並且可能對你的套用有著相當大的影響。 Netscape選擇實現了捕獲事件流,微軟則實現了冒泡事...
事件傳播――冒泡與捕獲 冒泡事件流 捕獲事件流 -
JavaScriptDOM高級程式設計
的事件 4.2.6 針對W3C DOM的事件 4.2.7 自定義事件 4.3 控制事件流和註冊事件偵聽器 4.3.1 事件流...過濾 9.2.3 操縱DOM文檔 9.3 處理事件...
圖書信息 編輯推薦 內容簡介 作者簡介 圖書目錄 -
ScriptDOM高級程式設計
4.2.4 鍵盤事件4.2.5 表單相關的事件4.2.6 針對W3C DOM的事件4.2.7 自定義事件4.3 控制事件流和註冊事件偵聽器4.3.1 事件流4.3.2 註冊事件4.3.3 在事件偵聽器中訪問事件對象4.3.4...
編輯推薦 內容簡介 圖書目錄 圖書章節 -
精通JS腳本之jQuery框架
選擇器、遍歷DOM元素、HTML處理、jQuery事件處理、Ajax套用...對JavaScript、CSS、DOM、Ajax等Web關鍵技術進行深入淺出的分析...DOM模型、jQuery選擇器、遍歷DOM元素、HTML處理...
內容簡介 前 言 目 錄 -
瘋狂Ajax講義——Prototype/jQuery+DWR+Spring+Hibernate整合開發
了XHTML、CSS、JavaScript、DOM和JavaScript事件...了XHTML、CSS、JavaScript和DOM編程等內容。第二部分詳細介紹...、JavaScript和DOM編程為主,無須任何基礎即可閱讀;第9章以後的內容...
容 簡 介 言 錄 -
《AJax完全自學手冊》
JavaScript中的事件流 998.1事件流分類 998.1.1冒泡型事件流 998.1.2捕獲型事件流 1008.1.3DOM事件流... 1068.3.1IE與DOM中的事件對象 1068.3.2IE與DOM中event對象...
版權資訊 內容簡介 編輯推薦 目錄 -
AJax完全自學手冊
947.4小結98第8章JavaScript中的事件流998.1事件流分類998.1.1冒泡型事件流998.1.2捕獲型事件流1008.1.3DOM事件流1018.2事件處理函式和監聽函式1018.2.1IE中的事件處理函式...
內容簡介 編輯推薦 目錄 -
sax
至少有一個特性是完全一樣的,這就是事件驅動。 相當多的SAX實現都可以...生事件(經由回調函式、指派函式或者任何可調用平台完成這一功能)表示這一...。 大多數SAX實現都會產生以下若干類型的事件: 在文檔的開始和結束時觸發文檔...
基本簡介 文檔解析 事件通知 解析實例 功能設定