2013-08-26 36 views
3

根據quirksmode,現代瀏覽器有一個捕獲階段和一個冒泡階段。請參閱here.什麼階段停止傳播效果?

如果我在事件處理程序中使用stopPropagation(通過布爾參數設置爲任一階段)它將如何工作?

它會雙向工作嗎?這就是說,如果我將它設置爲捕捉模式,它是否也會阻止冒泡階段。反之亦然。

這裏是W3參考(stopPropagation)。

我正在排除事件處理程序的故障,需要明確stopPropagation()的功能。

回答

5

在捕獲階段停止傳播將阻止進一步的處理程序運行,包括在冒泡階段註冊的處理程序。

W3C documentation on event flow說(重點煤礦):

該規範定義了三個事件階段:捕獲階段; 目標 階段;和泡泡階段。事件對象使用如下定義的部分傳播路徑以 指定的順序完成這些階段。 如果不支持,或者對象的傳播已停止,則必須跳過階段。例如,如果 Event.bubbles屬性被設置爲假,氣泡相將是 跳過,如果Event.stopPropagation()之前已經到 調度調用,所有階段必須被跳過