要了解关于dom冒泡,首先要了解一下什么是事件流,以及DOM事件的流的三个阶段。
简单来说流就是具有方向的数据
事件流
考虑一个问题:当你点击一个网页中按钮时,时按钮最外层的父元素先收到事件并执行还是,按钮先收到事件并执行。事件流所描述的就是从网页接受事件的顺序,因此事件流也有两种。分别是事件冒泡与事件捕获。
事件冒泡与事件捕获
事件冒泡是由最具体的元素接受(事件所发生的节点),然后逐级像上层父级元素传递。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<button>Click Me</button>
</body>
</html>
点击button,事件冒泡的触发顺序是button->body->document->window。而事件捕获的顺序则正好相反。
DOM事件流
DOM事件流包含三个阶段
1.事件捕获阶段
2.处于目标阶段
3.事件冒泡阶段