IE5.5
IE6.0
事件捕捉:
IE使用冒泡型事件、相對的畅铭、Netscape使用了另一種稱為捕獲型事件(eventcapturing)的解決方案服傍、事件的捕獲和冒泡剛好相反的兩種過程——捕獲型事件中、事件從最不精確的對象(document對象)開始觸發(fā)巡雨、然后到最精確(也可以在窗口級別捕獲事件棍辕,不過必尋由開發(fā)人員特別指定)暮现。Netscape不會將頁面上的很多元素暴露給事件。繼續(xù)使用前面的代碼示例楚昭、事件按照下面的路徑傳播:
(1)document
(2) 《div》
有些人也稱之為自頂向下的事件模型栖袋,因?yàn)樗菑腄OM層次的頂端開始向下延伸的:
DOM事件流:
DOM(文檔對象模型)結(jié)構(gòu)是一個樹型結(jié)構(gòu),當(dāng)一個HTML元素產(chǎn)生一個事件時(shí)抚太,該事件會在元素結(jié)點(diǎn)與根節(jié)點(diǎn)之間按特定的順序傳播塘幅,路徑所經(jīng)過的節(jié)點(diǎn)都會收到該事件,這個傳播過程可稱為DOM事件流凭舶。事件順序有兩種類型:事件捕捉和事件冒泡晌块。
DOM標(biāo)準(zhǔn)的事件模型
我們已經(jīng)對上面兩個不同的事件模型進(jìn)行了解釋和對比。DOM標(biāo)準(zhǔn)同時(shí)支持兩種事件模型帅霜,即捕獲型事件與冒泡型事件,但是呼伸,捕獲型事件先發(fā)生身冀。兩種事件流都會觸發(fā)DOM中的所有對象,從document對象開始括享,也在document對象結(jié)束(大部分兼容標(biāo)準(zhǔn)的瀏覽器會繼續(xù)將事件是捕捉/冒泡延續(xù)到window對象)搂根。繼續(xù)使用前面的例子、在與DOM兼容的瀏覽器中點(diǎn)擊
注意因?yàn)槭录哪繕?biāo)(元素)是最精確的元素(于是剩愧,在DOM樹中最深),實(shí)際上它會接收兩次事件娇斩,一次在捕獲過程中仁卷,另一次在冒泡過程中。DOM事件模型的最獨(dú)特的性質(zhì)是犬第,文本節(jié)點(diǎn)也觸發(fā)事件(在IE不會)锦积。所以如果點(diǎn)擊示例中的點(diǎn)擊、實(shí)際的事件流應(yīng)該是: