说明:
事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡是自下而上的去触发事件
html结构
1 2 3 |
|
JS代码
document.getElementById("parent").addEventListener("click",function(e){ alert("parent事件被触发,"+this.id); }) document.getElementById("child").addEventListener("click",function(e){ alert("child事件被触发,"+this.id) })
结果:
child事件被触发,child parent事件被触发,parent
结论:
先child,然后parent。事件的触发顺序自内向外,这就是事件冒泡。
修改addEventListener函数的第三个参数为true
document.getElementById("parent").addEventListener("click",function(e){ alert("parent事件被触发,"+e.target.id); },true) document.getElementById("child").addEventListener("click",function(e){ alert("child事件被触发,"+e.target.id) },true)
结果
parent事件被触发,parent child事件被触发,child
结论
先parent,然后child。事件触发顺序变更为自外向内,这就是事件捕获。
问题:事件冒泡的应用有哪些?什么情况需要阻止事件冒泡?