事件的冒泡与捕获
目标
- 目标: 你点击在那个元素上, 那么这个事件的目标 就是这个元素
冒泡
- 冒泡:
- 就是从 目标 的事件处理函数开始, 依次向上, 一直到 window 的事件处理函数触发也就是说从 下向上的执行事件处理函数
- 目标元素 -> body -> html -> document
捕获
- 捕获:
- 就是从 window 的事件处理函数开始, 依次向下, 一直到 目标 的事件处理函数触发
也就是说从上向下的执行 事件处理函数
- document -> html -> body -> 目标元素
区别
就是在事件的传播中, 多个同类型的事件处理函数的执行顺序不同, 仅此而已
var sBox = document.querySelector('.sBox')
var box = document.querySelector('.box')
var oBody = document.body
sBox.onclick = function () {
console.log('我是 内层 DIV, 我的点击事件被触发了')
}
box.onclick = function () {
console.log('我是 外层 DIV, 我的点击事件被触发了')
}
oBody.onclick = function () {
console.log('我是 body, 我的点击事件被触发了')
}
sBox.addEventListener('click', function () {
console.log('我是 内层 DIV, 我的点击事件被触发了')
}, true)
box.addEventListener('click', function () {
console.log('我是 外层 DIV, 我的点击事件被触发了')
}, true)
oBody.addEventListener('click', function () {
console.log('我是 body, 我的点击事件被触发了')
}, true)