关于DOM事件流、DOM0级事件与DOM2级事件

一、DOM 事件模型

DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window

关于DOM事件流、DOM0级事件与DOM2级事件_第1张图片

 

 

二、流

流的概念,在现今的 JavaScript 中随处可见。比如说 React 中的单向数据流,Node 中的流,还有 DOM 事件流,都是流的一种生动体现。
至于流的具体概念,用术语说流是对输入输出设备的抽象。以程序的角度说,流是具有方向的数据。

 

 

三、事件流

浏览器在为当前页面与用户做交互的过程中,比如点击鼠标左键,会出现这个左键是怎么传到页面上,还有怎么响应的问题。

事件流所描述的就是从页面中接受事件的顺序,事件流分为两种:事件冒泡(主流)和事件捕获

 

1、事件冒泡

关于DOM事件流、DOM0级事件与DOM2级事件_第2张图片

事件开始时由具体元素接收,然后逐级向上传播到父元素

举个例子:

DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Event Bubblingtitle>
head>
<body>
  <button id="clickMe">Click Mebutton>
body>
html>

我们给 button 和它的父元素,加入点击事件

var button = document.getElementById('clickMe');
 
button.onclick = function() {
  console.log('1. You click Button');
};
document.body.onclick = function() {
  console.log('2. You click body');
};
document.onclick = function() {
  console.log('3. You click document');
};
window.onclick = function() {
  console.log('4. You click window');
};

点击按钮运行效果:

关于DOM事件流、DOM0级事件与DOM2级事件_第3张图片

也就是说,click 事件首先在

你可能感兴趣的:(关于DOM事件流、DOM0级事件与DOM2级事件)