W3C標準事件流

2020-08-08 14:48:38
W3C 標準事件流(DOM2 級事件流)包含 3 個階段,捕獲階段、目標階段、冒泡階段。在捕獲階段,事件物件通過目標的祖先從視窗傳播到目標的父級。在目標階段,事件物件到達事件物件的事件目標。在冒泡階段,事件物件以相反的順序通過目標的祖先傳播,從目標的父級開始,到視窗結束。W3C 事件模型中發生的任何事件,先從頂層物件 window 開始一路向下捕獲,直到達到目標元素,其後進入目標階段。

目標元素 div 接收到事件後開始冒泡到頂層物件 window。例如,當使用者單擊了<div>元素,則首先會進行事件捕獲,此時事件按 window→document→<html>→<body> 的順序進行傳播,當事件物件傳到 <div> 時進入目標階段,接着事件物件又從目標物件傳到 body,從而進入事件的冒泡階段,此時事件物件按 <body>→<html>→document→window 的順序傳播事件。

各階段的事件流如圖 1 所示。
标准事件流的事件传播顺序
圖 1:標準事件流的事件傳播順序