事件
JavaScript與HTML之間的交互是通過(guò)事件實(shí)現(xiàn)的。事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互瞬間,通過(guò)監(jiān)聽(tīng)特定事件的發(fā)生,你能響應(yīng)相關(guān)的操作。圖片引用:UI Events
事件流
主要是當(dāng)時(shí)的IE團(tuán)隊(duì)提出的事件流逝是事件冒泡流,而Netscape提出的是事件捕獲流,
可以使用DOM2級(jí)定義的addEventListener()方法來(lái)處理在冒泡或者捕獲階段調(diào)用事件處理程序。
事件冒泡
即事件開(kāi)始時(shí)由最具體的元素(文檔中嵌套最深的節(jié)點(diǎn))接收,然后逐級(jí)向上傳播到較為不具體的節(jié)點(diǎn)。
事件捕獲
即最外層的元素更早接收到事件,而最具體的元素應(yīng)該最后接收到事件。事件捕獲的用意在于在事件到達(dá)預(yù)定目標(biāo)之前捕獲它。
DOM事件流
而“DOM2級(jí)事件”規(guī)定的事件流包括三個(gè)階段:事件捕獲階段,處于目標(biāo)階段和事件冒泡階段。首先發(fā)生的是事件捕獲,然后是實(shí)際的目標(biāo)接收到事件,最后一個(gè)階段是冒泡階段。
addEventListener函數(shù)接收三個(gè)參數(shù),要處理的事件名、作為事件處理程序的函數(shù)和一個(gè)布爾值,最后的布爾值如果是true,表示在不回階段調(diào)用事件處理程序;如果是false,表示在冒泡階段調(diào)用事件處理程序。
事件捕獲:
//html <!DOCTYPE html>
<html>
<head>
<title><