1.浏览器事件模型中的过程主要分为三个阶段:捕获阶段、目标阶段、冒泡阶段;
捕获阶段:从window到目标,即从上往下;
冒泡阶段:从目标到window,即从下往上;
事件是冒泡阶段还是捕获阶段,是又监听事件addEventListener的第三个参数决定的;
document.addEventListener('click',()=>{
},false)
第三个参数默认是false;
false: 监听冒泡阶段;
true: 监听捕获阶段;
2.阻止事件传播和阻止默认行为
伴随冒泡和捕获经常会用到阻止事件传播和阻止默认行为;
阻止事件传播:e.stopPropagation()
大家经常听到的可能是阻止冒泡,实际上这个方法不只能阻止冒泡,还能阻止捕获阶段的传播。
阻止默认行为:e.preventDefault()
e.preventDefault()可以阻止事件的默认行为发生;
默认行为是指:点击a标签就转跳到其他页面、拖拽一个图片到浏览器会自动打开、点击表单的提交按钮会提交表单等等,因为有的时候我们并不希望发生这些事情,所以需要阻止默认行为