JS事件流理解

事件是用戶或瀏覽器自身執行的某種動做,如click,load和mouseover都是事件的名字。html

事件是javaScript和DOM之間的橋樑。java

你若觸發,我便執行——事件發生,調用它的處理函數執行相應的JavaScript代碼給出響應。瀏覽器

典型的例子有:頁面加載完畢觸發load事件;用戶單擊元素,觸發click事件。函數

事件發生時會在元素節點與根節點之間按照特定的順序傳播,路徑所通過的全部節點都會收到該事件,這個傳播過程即DOM事件流。htm

事件傳播的順序對應瀏覽器的兩種事件流模型:捕獲型事件流和冒泡型事件流。對象

冒泡型事件流:事件的傳播是從最特定的事件目標到最不特定的事件目標。即從DOM樹的葉子到根。seo

捕獲型事件流:事件的傳播是從最不特定的事件目標到最特定的事件目標。即從DOM樹的根到葉子。事件

1)、全部現代瀏覽器都支持事件冒泡,但在具體實現中略有差異:ip

IE5.5及更早版本中事件冒泡會跳過<html>元素(從body直接跳到document)。class

IE九、Firefox、Chrome、和Safari則將事件一直冒泡到window對象。

2)、IE九、Firefox、Chrome、Opera、和Safari都支持事件捕獲。儘管DOM標準要求事件應該從document對象開始傳播,但這些瀏覽器都是從window對象開始捕獲事件的。

3)、因爲老版本瀏覽器不支持,不多有人使用事件捕獲。建議使用事件冒泡

相關文章
相關標籤/搜索