DOM事件處理有三個階段:
- 捕捉階段(capture phase):從最上層元素,直到最下層(你點擊的那個target)元素。路過的所有節點都可以捕捉到該事件。
- 命中階段(target phase):如果該事件成功到達了target元素,它會進行事件處理。
- 冒泡階段(bubbling phase):事件從最下層向上傳遞,依次觸發父元素的該事件處理函數
在任意一個階段的事件處理函數中,都可以通過調用event.stopPropagation
來中斷事件流,后續的階段將不會被調用。
其實return false
做了三件事:
stopPropagation()
:阻止事件傳播preventDefault()
:禁止瀏覽器默認行為,比如<a>
標簽被點擊后頁面會跳轉- 立即結束當前函數并返回,當然。