事件流:html
-事件流包括三個階段-事件捕獲階段、處於目標階段和事件冒泡階段。瀏覽器
-首先發生的是事件捕獲,爲截獲事件提供了機會,而後是實際的目標接收到事件,最後一個階段是冒泡階段,能夠在這個階段對事件作出響應。ui
事件冒泡:spa
-事件開始時由最具體的元素接收,而後逐級向上傳播到較爲不具體的節點(文檔)。code
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div id="myDiv">Click Me</div> </body> </html>
-若是你單擊了頁面中的<div>元素,那麼這個click事件會安裝以下順序傳播:htm
1,<div>對象
2,<body>blog
3,<html>事件
4,document文檔
-也就是說,click事件首先在<div>元素上發生,而這個元素就是咱們單擊的元素,而後,click事件沿DOM樹想上傳播,在每一級節點上都會發生,直至傳播到document對象
-全部現代瀏覽器都支持事件冒泡,但在具體實現上仍是有一些差異,IE5.5及更早版本中的事件冒泡會跳過<html>元素(從<body>直接跳到document),IE九、Firefox、Chrome和Safari則將事件一直冒泡到window對象。
事件捕獲:
是不太具體的元素應該更早接受到事件,而最具體的節點應該最後接收到事件。他們的用意是在事件到達目標以前就捕獲它;也就是跟冒泡的過程正好相反,以html的click事件爲例,document對象(DOM級規範要求從document開始傳播,可是如今的瀏覽器是從window對象開始的)最早接收到click事件的而後事件沿着DOM樹依次向下傳播,一直傳播到事件的實際目標