1. 程式人生 > 實用技巧 >小謝第41問:事件冒泡和阻止事件冒泡(事件捕獲)

小謝第41問:事件冒泡和阻止事件冒泡(事件捕獲)

在一個物件上觸發某類事件(比如單擊onclick事件),如果此物件定義了此事件的處理程式,那麼此事件就會呼叫這個處理程式,如果沒有定義此事件處理程式或者事件返回true,那麼這個事件會向這個物件的父級物件傳播,從裡到外,直至它被處理(父級物件所有同類事件都將被啟用),或者它到達了物件層次的最頂層,即document物件(有些瀏覽器是window)。

事件冒泡是事件流的第三個階段,通過事件冒泡可以在這個階段對事件做出響應。

  關於冒泡,事件物件中包含bubblescancelBubblestopPropagation()stopImmediatePropagation()這四個屬性和方法。

1.event.stopPropagation();
事件處理過程中,阻止了事件冒泡,但不會阻擊預設行為(執行超連結的跳轉)
2.returnfalse;
事件處理過程中,阻止了事件冒泡,也阻止了預設行為(不執行超連結的跳轉)
還有一種與冒泡有關的:
3.event.preventDefault();
事件處理過程中,不阻擊事件冒泡,但阻擊預設行為(它只執行所有彈框,卻沒有執行超連結跳轉)