小謝第41問:事件冒泡和阻止事件冒泡(事件捕獲)
阿新 • • 發佈:2020-07-22
在一個物件上觸發某類事件(比如單擊onclick事件),如果此物件定義了此事件的處理程式,那麼此事件就會呼叫這個處理程式,如果沒有定義此事件處理程式或者事件返回true,那麼這個事件會向這個物件的父級物件傳播,從裡到外,直至它被處理(父級物件所有同類事件都將被啟用),或者它到達了物件層次的最頂層,即document物件(有些瀏覽器是window)。
事件冒泡是事件流的第三個階段,通過事件冒泡可以在這個階段對事件做出響應。
關於冒泡,事件物件中包含bubbles
、cancelBubble
、stopPropagation()
和stopImmediatePropagation()
這四個屬性和方法。
1.event.stopPropagation();
事件處理過程中,阻止了事件冒泡,但不會阻擊預設行為(執行超連結的跳轉)
2.returnfalse;
事件處理過程中,阻止了事件冒泡,也阻止了預設行為(不執行超連結的跳轉)
還有一種與冒泡有關的:
3.event.preventDefault();
事件處理過程中,不阻擊事件冒泡,但阻擊預設行為(它只執行所有彈框,卻沒有執行超連結跳轉)