事件捕獲指的是從document到觸發事件的那個節點,即自上而下的去觸發事件。
事件冒泡是自下而上(從最深節點開始,向上傳播事件)的觸發事件
1//例子23
4567
var d_parent = document.getelementbyid("parent");
8var d_child= document.getelementbyid("child");
910 d_parent.addeventlistener("click",function
(e))
13 d_child.addeventlistener("click",function
(e))
1617
18//
結果:19
//child事件被觸發,child
20//
parent事件被觸發,parent
2122
//結論:先child,然後parent。事件的觸發順序自內向外,這就是事件冒泡。
繫結事件方法的第三個引數,就是控制事件觸發順序是否為事件捕獲。預設false,即事件冒泡。true,事件捕獲;false,事件冒泡。
var d_parent = document.getelementbyid("parent");var d_child= document.getelementbyid("child");
d_parent.addeventlistener("click",function(e),true)
d_child.addeventlistener("click",function(e),true)
//結果:
//parent事件被觸發,parent
//child事件被觸發,child
//結論:先parent,然後child。事件觸發順序變更為自外向內,這就是事件捕獲。
事件捕獲
當你使用事件捕獲時,父級元素先觸發,子級元素後觸發,即div先觸發,p後觸發。
事件冒泡
當你使用事件冒泡時,子級元素先觸發,父級元素後觸發,即p先觸發,div後觸發。
event.stoppropagation(); -- 阻止元素冒泡事件
也可以用開關實現,
JS事件冒泡與事件捕獲
1,ie只冒泡,w3c先捕獲再冒泡 鑑於我自己理解事件冒泡和捕獲的艱辛歷程 看了數篇博文之後,我猜這個問題是不是很難 後來發現不是,難是應用到高階的功能中 我要把此文寫得足夠輕便,新手易懂。為了方便測試 直接複製到html裡面 這個 很直觀了,事件冒泡 的過程 事件從發生的目標 event.srce...
js 事件冒泡或事件捕獲?
事件傳遞有兩種方式 冒泡 與捕獲 事件傳遞定義了元素事件觸發的順序。如果你將 元素插入到 元素中,使用者點選 元素,哪個元素的 click 事件先被觸發呢?在 冒泡 中,內部元素的事件會先被觸發,然後再觸發外部元素,即 元素的點選事件先觸發,然後會觸發 元素的點選事件 在 捕獲 中,外部元素的事件會...
js 事件冒泡和事件捕獲
1 冒泡型事件 事件按照從最特定的事件目標到最不特定的事件目標 document物件 的順序觸發。ie 5.5 div body document ie 6.0 div body html document mozilla 1.0 div body html document window 2 捕獲...