1.事件传播
如果触发子元素的事件和父级的事件相同,那么触发子集事件的时候同时也会触发父级的事件类型
阻止事件传播 e.stopPropagation()
2.目标冒泡捕获
1.冒泡:事件传播时,从里向外;事件传播时,从目标开始传播,一直到父级,body.......window
2.捕获:从外向里 ;从最顶层开始,逐层向下传递,一直到目标
3.事件源.addEventListener('事件类型',事件处理函数,第三个参数为true时传播方式为捕获)
box1.addEventListener('click', function () {
console.log('触发了 box1 的点击事件')
}, true)
box2.addEventListener('click', function () {
console.log('触发了 box2222 的点击事件')
}, true)
myBody.addEventListener('click', function () {
console.log('触发了 body 的点击事件')
}, true)
3.默认阻止事件
方式1:return false
方式2:e.preventDefault()
// 1. 方式1
// console.log('点击了 a 标签, 但是因为有 return false 所以默认的跳转功能被拦截')
// return false
// 2. 通过事件对象拦截 preventDefault() 拦截之后, 取消了 a标签的默认跳转功能
e.preventDefault()
}