二、事件的冒泡和捕获
1.什么是事件?
简单来说:就是用户与浏览器窗口发生交互的过程。列如:鼠标点击、鼠标滑入滑出、滚轮、键盘输入……
2.事件的冒泡
以烂大街的点击事件为例(代码简单就不写了看着也烦)
2.1 什么是事件冒泡?
即当发生事件时,由最
内部的元素接收,然后逐级向上传播。
看上图
当我们点击 a 时
a 会先响应并触发点击事件
然后 p 响应并触发点击事件
然后是 li => ul => body => html 逐级向上
这个过程就是事件的冒泡
2.2 什么是事件捕获?
即当发生事件时,由最
外部的元素接收,然后逐级向下传播。
捕获就是冒泡相反
当我们点击 a 时
最外层的 html 会先响应并触发点击事件
然后 body 响应并触发点击事件
然后是 ul => li => p => a 逐级向下
这个过程就是事件的捕获
2.3 如何取消冒泡呢?
浏览器默认情况下是会冒泡的,当我们需要取消时,
方法一: 在定义的事件回调函数的后面加上 return false
a.onclick = function(){
alert('a被点击了');
return false;
}
方法二:通过事件对象 event取消
a.onclick = function(event){
alert('a被点击了');
event. cancelBubble=true;
}