事件觸發(fā)有三個(gè)階段:window 往事件觸發(fā)處傳播,遇到注冊(cè)的捕獲事件會(huì)觸發(fā)傳播到事件觸發(fā)處時(shí)觸發(fā)注冊(cè)的事件從事件觸發(fā)處往 window 傳播,遇到注冊(cè)的冒泡事件會(huì)觸發(fā)事件觸發(fā)一般來(lái)說(shuō)會(huì)按照上面的順序進(jìn)行,但是也有特例,如果給一個(gè) body 中的子節(jié)點(diǎn)同時(shí)注冊(cè)冒泡和捕獲事件,事件觸發(fā)會(huì)按照注冊(cè)的順序執(zhí)行。
通常使用 addEventListener 注冊(cè)事件,該函數(shù)的第三個(gè)參數(shù)可以是布爾值,也可以是對(duì)象。對(duì)于布爾值 useCapture 參數(shù)來(lái)說(shuō),該參數(shù)默認(rèn)值為 false ,useCapture 決定了注冊(cè)的事件是捕獲事件還是冒泡事件。對(duì)于對(duì)象參數(shù)來(lái)說(shuō),可以使用以下幾個(gè)屬性:
capture:布爾值,和 useCapture 作用一樣
once:布爾值,值為 true 表示該回調(diào)只會(huì)調(diào)用一次,調(diào)用后會(huì)移除監(jiān)聽(tīng)
passive:布爾值,表示永遠(yuǎn)不會(huì)調(diào)用 preventDefault