文章目录
1.事件流
- JS事件:用于HTML和JavaScript之间的交互
- 事件流:事件传播的过程
- DOM中完整的事件流包括三个阶段:事件捕获阶段,目标阶段,事件冒泡阶段(注意中间的目标阶段不要记成事件委托阶段)
- 事件通过捕获到达目标元素,这个时候就是目标阶段,从目标节点元素将事件上传到根节点的构成阶段即冒泡阶段
2.事件冒泡
2.1.事件冒泡的定义
从事件源朝父级一直到根元素(HTML)。当某个元素的某类型事件被触发时,那么它的父元素同类型的事件也会被触发,一直触发到根源上;
从具体的元素到不确定的元素。
2.2.事件冒泡的示例
var ul = document.querySelector("ul");
var li = document.querySelector("li");
ul.onclick = function() {
console.log(this.innerHTML);
};
li.onclick = function() {
console.log(this.innerHTML);
};
// 父子元素绑定同一个事件时,触发子元素绑定的事件时,父元素绑定的事件也会触发
//当点击子元素时,先触发父元素的点击事件,再触发子元素的点击事件,打印相应的内容;
3.事件捕获
3.1,事件捕获的定义
从根元素(HTML)到事件源,当某个元素的某类型事件被触发时,先触发根元素的同类型事件,朝子一级触发,一直触发到事件源。
从不确定的元素到具体的元素;
3.2.事件捕获的示例
var ul = document.querySelector("ul");
var li = document.querySelector("li");
ul.addEventListener("click", () => {
console.log("ulululul");
}, false);
li.addEventListener("click", () => {
console.log("lililili");
}, false);
点击li,先打印ulululul再打印lilililili
(冒泡是先打印lililili,再打印ulululul)
3.3.addEventListener第三个参数设置为true时,为事件捕获,false时为事件冒泡
4.阻止事件冒泡和阻止事件捕获
2021-07-29 vue事件冒泡和事件捕获,阻止冒泡和阻止浏览器默认行为
阻止冒泡
div.addEventListener("click'