事件的默认传播机制
-> 捕获阶段: 从外向内依次查找元素
-> 目标阶段: 当前事件源本身的操作
-> 冒泡阶段: 从内到外依次触发相关行为(最常用的就是冒泡阶段)
使用DOM 0级事件绑定给元素的某一个行为绑定的方法,都是在行为触发后的冒泡阶段把方法执行的。
outer.onclick = function (e) {
console.log('outer');
console.log(e);
}
inner.onclick = function (e) {
console.log('inner');
console.log(e);
}
center.onclick = function (e) {
console.log('center');
console.log(e);
}
document.body.onclick = function (e) {
console.log('body');
console.log(e);
}
addEventListener
: 第一个参数是行为的类型, 第二个参数是给当前的行为绑定的方法, 第三个参数是控制在哪个阶段发生: true -> 在捕获阶段发生, false -> 在冒泡阶段发生。
document.body.addEventListener('click', function (e) {
console.log('body');
console.log(e);;
}, false);
outer.addEventListener('click', function (e) {
console.log('body');
console.log(e);;
}, true);
inner.addEventListener('click', function (e) {
console.log('body');
console.log(e);;
}, false);