今天在部落格中看到了javascript的事件機制,就自己試試寫一個簡單的冒泡捕獲測試,但是測試結果出乎了我的意料,主要是自己原來對事件了解不是很清楚,現在寫篇部落格記錄下。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauATOkNWO0cjMhJ2NjhjNhF2N5IDNjJzMhdDOzYmN5czNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.jpg)
DOM2中事件有三個階段
事件的捕獲階段
事件的目标階段
事件的冒泡階段
事件的捕獲階段:是由document元素向發生事件的元素傳遞。
事件的目标階段:是指在找到了發生事件的目标元素這個階段,找到之後就會執行事件監聽器。如果在目标元素上同時綁定捕獲和冒泡階段事件,事件的執行順序與綁定的順序有關。其實也好了解,如果是這樣的話,在目标元素上綁定了兩個階段的監聽事件,因為操作的元素就是目标元素,綁定的事件無須傳遞,索性就按綁定順序執行,個人了解。
事件的冒泡階段:指由目标元素向上傳遞,就是想父元素傳遞,如果遇到監聽的事件就執行。可以這麼了解,由于是子元素向祖先傳遞,祖先當然知道是自己下的事件被監聽了,因為父元素一直包含子元素。
例子
代碼