事件流描述的是從頁(yè)面中接收事件的順序违霞。IE的事件流水事件冒泡流搔体,而Netscape Commuication的事件流水事件捕獲流臭杰。
- 事件冒泡
- 事件捕獲
DOM事件流
”DOM2級(jí)事件“規(guī)定的事件流包括三個(gè)階段:事件捕獲階段诺舔、處于目標(biāo)階段和事件冒泡階段奉狈。
事件處理程序
- HTML事件處理
- DOM0級(jí)事件處理程序
- DOM2級(jí)事件處理程序
- addEventListener()
- removeEventListener()
都接受三個(gè)參數(shù):要處理的事件名卤唉、作為事件處理程序的函數(shù)和一個(gè)布爾值。最后的布爾值參數(shù)如果是true仁期,表示在捕獲階段調(diào)用事件處理程序桑驱;如果是false,表示在冒泡階段調(diào)用事件處理程序跛蛋。大多情況下選擇false - 通過(guò)addEventListener()添加的事件處理程序只能使用removeEventListener()來(lái)移除熬的。
事件對(duì)象
觸發(fā)DOM上的某個(gè)事件,會(huì)產(chǎn)生一個(gè)事件對(duì)象event赊级,這個(gè)對(duì)象中包含著所有與事件有關(guān)的信息押框。event對(duì)象包含與創(chuàng)建它的特定事件有關(guān)的屬性和方法,觸發(fā)的事件類型不一樣理逊,可用的屬性和方法也不一樣橡伞。
要阻止特定事件的默認(rèn)行為,可以使用preventDefault()方法晋被。只有cancelable屬性設(shè)置為true的事件兑徘,才可以使用preventDefaultfault()來(lái)取消其默認(rèn)行為。另羡洛,stopPropagation()方法用于立即停止事件在DOM層次中的傳播挂脑,即取消進(jìn)一步的事件捕獲或冒泡。
事件對(duì)象的eventPhase屬性欲侮,可以用來(lái)確定事件當(dāng)前正位于事件流的哪個(gè)階段崭闲。如eventPhase等于1,處于捕獲階段威蕉;如eventPhase等于2刁俭,則處于目標(biāo)對(duì)象上;如eventPhase等于3韧涨,則處于冒泡階段薄翅。
IE中的事件處理和事件對(duì)象都有所不同。
事件類型
- UI事件
- 焦點(diǎn)事件
- 鼠標(biāo)事件
- 滾輪事件
- 文本事件
- 鍵盤事件
- 合成事件
- 變動(dòng)事件