流
用術(shù)語說流是對輸入輸出設(shè)備的抽象棒动。以程序的角度說,流是具有方向的數(shù)據(jù)宾添。
事件流所描述的就是從頁面中接受事件的順序船惨。
事件冒泡
事件開始時,由最具體的元素接收(事件發(fā)生所在的節(jié)點)缕陕,逐級向上傳播
button→ body→ document→ window
事件捕獲
與事件冒泡正好相反粱锐。它認為當(dāng)某個事件發(fā)生時,父元素應(yīng)該更早接收到事件扛邑,具體元素則最后接收到事件卜范。
window →document →body →button
事件捕獲階段---當(dāng)事件發(fā)生時,首先發(fā)生的是事件捕獲鹿榜,為父元素截獲事件提供了機會海雪。
在JS中,綁定的事件默認的執(zhí)行時間是在冒泡階段執(zhí)行舱殿,而非在捕獲階段
可以通過綁定事件時奥裸,指定事件執(zhí)行時間是在冒泡階段還是捕獲階段。
JS在默認情況下獲取事件后沪袭,就開始從根元素開始捕獲所有該事件的監(jiān)聽對象湾宙,然后在冒泡階段逐一執(zhí)行樟氢。
捕獲階段在冒泡階段前面
阻止冒泡 w3c的方法:e.stopPropagation(),IE使用:e.cancelBubble = true侠鳄;
?阻止默認行為 w3c的方法:e.preventDefault()埠啃,IE使用:e.returnValue = false;
關(guān)于JS 事件冒泡和onclick,click,on()事件觸發(fā)順序
?onclick,click,on()的優(yōu)先關(guān)系:onclick>click>on();
?onclick和click綁定的事件伟恶,彼此之間遵守事件冒泡規(guī)則碴开,從內(nèi)到外觸發(fā); on()綁定的事件博秫,總是晚于onclick和click綁定的事件觸發(fā)