事件冒泡
事件的向上传导,当后代元素上的事件被触发, 其祖先标签的相同事件也会被触发
如果不需要发生事件冒泡可以通过事件对象来取消冒泡。 e.cancelBubble=true;
- 例: 我们有一个div #box1 , div里面有一个span标签 #span1.
- 分别给#box1 和#span1以及body添加onclick点击事件, 此时,当我们点击#span1的时候, #box1和body的点击事件也会被触发, 当点击#box1的时候, body的点击事件会被触发, 如果不想让事件像上冒泡, 在标签点击事件执行结束的时候 添加cencelBubble=true;来阻止冒泡即可。
var s1=document.getElementById("span1");
var box1=document.getElementById("box1");
s1.onclick=function(e){
alert("span1");
e.cancelBubble=true;
}
box1.onclick=function(e){
alert("box1");
e.cancelBubble=true;
}
document.body.onclick=function(){
alert("body");
}