1. 程式人生 > >事件(一):事件流

事件(一):事件流

net 讀者 win ets 我們 chrom 就會 click事件 分享圖片

事件流:從頁面中接收事件的順序
ie中叫事件冒泡流
netscape中叫事件捕獲流

事件冒泡

事件冒泡,即事件開始時由最具體的元素(文檔中嵌套層級最深的那個節點)接收,然後逐級向上傳播到較為不具體的節點(文檔),for example

<!DOCTYPE html>
<html>
<head>
    <title>event bubbing example</title>
</head>
<body>
    <div id=‘myDiv‘>
        click me
    
</div> </body> </html>

如果點擊了頁面中的div元素,那麽這個click事件會按照如下順序傳播
1、div
2、body
3、html
4、document

技術分享圖片

所有現代瀏覽器都支持事件冒泡,具體實現還是又一些差別。ie5.5及更早版本中的事件冒泡會跳過html元素,從body直接跳到document.ie9、firefox、chrome和safari則將事件一直冒泡到window對象。

事件捕獲

事件捕獲的思想是不太具體的節點應該更早接收到事件,而最具體的節點應該最後接收到事件,那麽單機div元素就會以下列順序觸發click事件

1、document
2、html
3、body
4、div

技術分享圖片


由於老版本的瀏覽器不支持,因此很少有人使用事件捕獲。我們也建議讀者放心地使用事件冒泡,在有特殊需要時再食用事件捕獲

DOM事件流

dom事件流包括三個階段:事件捕獲階段,處於目標階段,事件冒泡階段。首先發生的是事件捕獲,為截獲事件提供了機會。然後實際的目標接收到事件。最後一個階段是冒泡階段,可以在這個階段對事件做出響應
1、document
2、html
3、body
4、div
5、body
6、html
7、document

技術分享圖片

事件(一):事件流