关于事件流的简单理解

2023-05-16

JS事件

1、首先,什么是事件?

​ JavaScript和Html发生交互是通过事件来实现的,事件,就是文档或浏览器窗口发生一些特定的交互的瞬间

2、什么是事件流?

事件流就是,事件传播的过程。

DOM中完整的事件流包括了三个阶段:事件捕获阶段目标阶段事件冒泡阶段

事件通过捕获到达目标元素,这个时候就是目标阶段,从目标节点元素将事件上传到根节点的构成阶段,冒泡阶段

在这里插入图片描述

3、关于事件冒泡以及事件捕获

  • 事件冒泡,也就是自下而上,从目标触发的元素逐级向上传播,直至window对象

在这里插入图片描述

  • 事件捕获:

​ 也就是从document逐级向下传播到目标元素,但是有与IE浏览器的限制,很少使用到事件捕获

在这里插入图片描述

后来ECMAScript在DOM2中对事件流进行了进一步规范,基本上就是上述二者的结合。

DOM2级事件规定的事件流包括三个阶段: (1)事件捕获阶段 (2)处于目标阶段 (3)事件冒泡阶段

3、关于DOM事件的处理

​ 当我们在DOM节点中添加了事件之后,就需要对事件进行处理,而DOM事件的处理主要是分为4各级别:

  1. DOM0级事件
  2. DOM1级事件
  3. DOM2级事件
  4. DOM3级事件
  • DOM0级处理程序

​ 把一个函数赋值给一个事件处理程序属性

    var btn2 = document.getElementById("btn2");
    btn2.onclick = function() {
        alert("hello world");
    }
    btn2.onclick = null;    //移除事件处理程序
  • DOM2级处理程序

DOM2事件机制

同样的事件和事件流机制下的相同方法只会触发一次。

为当前元素创建一个事件池,把所有需要绑定的方法存储到事件池中,当事件触发的时候,到对应的事件池中找到对应的方法 依次执行 即可

 let oDiv = document.getElementById("div1");
 
  function fn() {
        console.log("fn");
        return "100"
    }
    
    oDiv.addEventListener("click",  function () {
        console.log("fn");
    }, false);
   
    oDiv.addEventListener("click", fn1, false);
    
    oDiv.removeEventListener("click",  function () {
        console.log("fn");
    }, false);

备注:

其中DOM1级事件处理标准中并没有定义相关的内容,所以没有所谓的DOM1事件处理;

DOM3级事件是在DOM2级事件的基础上添加了更多的事件类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于事件流的简单理解 的相关文章

  • 今天也来点Docker,Docker-TLS加密通讯

    这里写目录标题 一 TLS加密通讯的概述二 TLS加密通讯的部署2 1 搭建环境2 2 部署过程2 3 验证加密通讯 一 TLS加密通讯的概述 用TLS加密通讯原因 xff1a 为了防止链路劫持 会话劫持等问题导致 Docker 通信时被中
  • Nginx+Tomcat动静分离的部署

    文章目录 一 动静分离的原理二 动静分离的优势三 项目部署3 1 项目环境3 2 nginx 服务器部署3 3 Tomcat 服务器部署3 4 客户端验证服务器状态3 5 动静分离配置3 6 验证动态配置 一 动静分离的原理 服务端接收来自
  • 数据门户是什么?

    数据门户可以通过配置导航菜单 xff0c 自由组合报表 屏 数据填报 外部链接等资源 xff0c 形成 个可通过 定义地址统一访问的资源 数据门户可 便用户对多个关联 进 集中查看 其主要应 用场景为 制作主题性数据 网站或主题性报表 xf
  • 踏入OpenStack大门,Nova计算服务讲解

    文章目录 一 Nova计算服务概述1 1 Nova简介1 2 Nova系统架构1 3 Nova 部署 Cell 二 Nova组件详细介绍2 1 API xff08 通信接口 xff09 2 2 Scheduler xff08 调度器 xff
  • 踏入OpenStack大门,Nova项目部署

    文章目录 一 Nova组件部署环境二 控制节点Nova服务配置2 1 创建nova数据库 xff0c 并执行授权操作2 2 管理Nova用户及服务2 2 1 创建nova用户2 2 2 创建nova服务2 2 3 给Nova服务关联endp
  • 【错误归纳】nova-status upgrade check 检查下cell 发现未发现计算节点

    实验场景 xff1a 部署openstack xff0c 验证计算节点服务 故障现象 xff1a 查看计算节点列表正常 span class token punctuation span root 64 ct span class toke
  • 试用AI写作软件AI-WRITER.COM:重写(rewrite)功能测试简短报告

    试用AI WRITER COM xff1a 重写 rewrite 功能测试 试用网站连接https ai writer com 1 操作页面简介 xff1a 2 选定重写文案 xff1a 我直接使用官网后台定制关键词后 xff0c 自动推荐
  • 树莓派4B更新内核后,wlan0消失的问题解决方法

    更新升级Linux内核后 xff0c 树莓派4B的WIFI功能不可以使用了 此时运行ifconfig无法找到wlan0 解决方法 xff1a insmod lib modules x xx xx kernel net rfkill rfki
  • 树莓派4B更新内核后,wlan0消失的问题解决方法2

    上一篇文章介绍了通过insmod加载无线网卡驱动的方法找回wlan0 但是每次启动后都需要手动运行很不方便 下面介绍这个一劳永逸的方法 1 进入 lib modules lt kernel ver gt 目录 xff0c 运行sudo de
  • AT-AWP:Adversarial weight perturbation helps robust generalization

    本文提出一种简单而有效的对抗权重扰动 AWP 来明确规范化权重损失图的平滑度 xff0c 在对抗训练框架中形成双重扰动机制 输入扰动和权值扰动 大量实验表明 xff0c AWP确实使权重损失图更加平缓 xff0c 并且可以很容易地融入各种现
  • 过一遍|Promise面试题(会持续补充的)

    Promise一直是面试被问的重点 xff0c 根据各种面经记录Promise在面试中经常问道的问题 xff0c 同时会增加一些前瞻性和拓展性的问题 xff0c 适合我这种临时抱佛脚的人 前期储备 事件循环 xff08 event loop
  • 枚举的简单demo

    枚举 间接的表示一些固定的值 xff0c 关键字 enum Demo span class token keyword public span span class token keyword enum span GenderEnum sp
  • 基于C++的简单HTTP服务器实现

    基于C 43 43 的简单HTTP服务器实现 一个Web Server就是一个服务器软件 xff08 程序 xff09 xff0c 或者是运行这个服务器软件的硬件 xff08 计算机 xff09 其主要功能是通过HTTP协议与客户端 xff
  • 数据血缘是什么?数据血缘都解决哪些问题

    数据血缘 xff0c 即对Sugar BI中各资源涉及的数据流经路径进 跟踪 xff0c 类似于追踪数据的 缘关系 其可针对数据向下做影响分析或向上做溯源分析 xff0c 有助于 户管理资源和排查问题 具体为 xff1a 影响分析 xff1
  • 抢位|AI 时代下程序员的硬核技能

    ChatGPT 占领了几乎全部媒体的近日头条 xff0c 也引发了不少人思考 AI 时代下自己不可替代的工作价值 AI 时代程序员的硬核技能是什么 xff1f 如何拥有这一硬核技能 xff1f Tubi 研发副总裁陈天将在2023 4 16
  • Redis知识点总结

    一 什么是Redis Redis是一个使用C语言编写的 基于内存的且可持久化的key value数据库 Redis有以下特点 xff1a 1 性能高 Redis 读数据速度能达到 110000 次 s 写数据速度是 81000 次 s xf
  • 无人机动力组装与测试-电机、螺旋桨、电调、电池

    无人机动力系统 综合实验实训教学课程 实验课程1 xff1a 无人机动力系统组装及调试 课程内容 xff1a 无人机动力系统四大组成部分无人机动力系统组装与调试 实验器材 xff1a WF EDU 02无人机动力测试教学仪实验套装 实验教学
  • Elasticsearch Linux安装详细步骤

    1 ElasticSearch 安装 1 1 ElasticSearch安装 1 上传ElasticSearch安装包 alt 43 p span class token comment 打开sftp窗口 span span class t
  • Ubuntu常用命令

    whoami 查看当前登录用户 su lt 用户名 gt 切换用户 useradd lt 用户名 gt 创建用户 passwd lt 用户名 gt 修改用户密码 history 查看历史命令 xff01 行数 直接执行曾经使用过命令 pwd
  • 用自己的摄像头运行SVO(效果不好)

    SVO Fast Semi Direct Monocular Visual Odometry 一 摘要 semi direct 半直接减小了特征提取的量匹配的运动估计更鲁棒直接从pixel intensities xff08 像素强度 xf

随机推荐

  • vnc远程登录工具 vnc远程登录工具如何选择与使用呢

    对于vnc远程登录工具 xff0c 如何选择与使用呢 xff1f 我目前所使用的就是这一款 xff1a IIS7服务器管理工具 作为IIS7服务器管理工具 xff0c 它可以对vnc站点进行批量管理 xff0c 十分便捷 除此之外 xff0
  • 局域网vnc远程控制软件,那些超级好用的局域网vnc远程控制软件

    其实在我们程序员的日常工作中 xff0c 难免会用到vnc远程控制 xff0c 那在小伙伴们的日常工作中 xff0c 有哪些好用的局域网vnc远程控制软件呢 xff1f 大家都有哪些了解呢 xff1f 那今天就让我们大家一起来交流一下有哪些
  • vnc使用教程,快速上手的vnc批量管理使用教程

    在日常工作过程中 肯定有很多程序员小伙伴们会有vnc批量管理使用教程的需求吧 小编也一样 那大家是如何实现vnc批量管理的呢 接下来 我将会对快速上手的vnc批量管理使用教程作一个简单介绍 首先 xff0c 我使用的是IIS7服务器管理工具
  • vnc使用教程,超实用的vnc使用教程

    在工作中 xff0c 难免会使用到vnc 小编也一样 很多小伙伴也问过我这个问题 xff0c 什么样的vnc使用教程能做到简单快捷 那大家知道vnc使用过程中 xff0c 是如何实现简单快捷的呢 接下来 我将会对vnc使用教程作一个简单介绍
  • 百度数据可视化Sugar BI — 数据监控与预警(附保姆级教程)

    最近答主一直在用百度智能云的Sugar BI xff0c 于是把他家官网里几个非常实用的数据可视化最佳实践资料 xff0c 分享至知乎 xff0c 希望可以帮到各位朋友 数据监控是有效且及时的反馈出数据异常的一种手段 通过对数据的监控去观察
  • windows如何使用vnc,只需5步轻松掌握windows下使用vnc

    出门在外忘了带档案怎么办 xff1f FTP server 上头忘了开帐号怎么办 xff1f 这些麻烦的问题其实都可以靠 VNC 解决 IIS7服务器管理工具是一款免费的远程控制软件 xff0c 能让你轻松控制远程的计算机 xff0c 它可
  • vnc viewer安卓版,5步掌握vnc viewer安卓版的使用方法

    vnc viewer是针对安卓系统而开发的一款手机远程桌面连接电脑软件 xff0c 该软件需要配合pc端的vnc服务端使用 xff0c 当用户在电脑上开启了vnc服务端 xff0c 再通过vnc viewer就可以在手机上随意操作电脑 xf
  • vncviewer使用教程,6步掌握vncviewer的使用教程

    vnc viewer是一款远程控制的软件 xff0c 一般用于远程解决电脑故障或软件调试 xff0c 下文小编就为大家带来vnc viewer远程控制电脑的教程 xff0c 相信看了你就会使用它了 IIS7服务器管理工具能让你轻松控制远程的
  • 常见的ftp工具有哪些,分享8款常见的ftp工具

    市面上有很多ftp服务器软件 xff0c 但是功能参差不齐 xff0c 安全性太多没有保障 xff0c 小编也进了很多坑 xff0c 为了让您少走弯路 xff0c 今天给大家分享8款常见的ftp工具 每款都很有特色 xff0c 感兴趣的小伙
  • tftp命令怎么传输文件,5步掌握tftp命令的使用方法

    FTP让用户得以下载存放于远端主机的文件 xff0c 也能将文件上传到远端主机放置 tftp是简单的文字模式ftp程序 xff0c 它所使用的指令和FTP类似 IIS7服务器管理工具可以批量管理 定时上传下载 同步操作 数据备份 到期提醒
  • filezilla ftp设置,7步完成filezilla ftp设置

    FTP服务器 File Transfer Protocol Server 是在互联网上提供文件存储和访问服务的计算机 xff0c 它们依照FTP协议提供服务 FTP是文件传输协议 xff0c 就是专门用来传输文件的协议 这篇文章主要介绍fi
  • 8uftp无法取得目录列表,解决8uftp无法取得目录列表的问题只需4步

    最近发现自己买的香港空间出现一个很严重的问题 xff0c ftp连接时无法取得目录列表 xff0c 因为之前一直固定在一家买空间 xff0c 所以善良的我很自然的打电话给这位老朋友让他赶紧起床看一看 xff0c 当时是凌晨两点半 几分钟后
  • 大数据ftp软件,2步完成大数据ftp软件的连接与命令操作

    ftp软件是什么软件 xff0c 可能有人会回答说不知道 xff0c 因为一般只有从事网站管理的工作者会使用的多一点 但不是每个人生来就会的 xff0c 所以刚开始肯定都会学习怎么使用ftp软件 这篇文章就来告诉大家大数据ftp软件大数据f
  • PID算法控制平衡小车直立

    1 平衡小车直立控制 xff1a 如果我们要控制一根木棍在手上直立 xff0c 需要两个步骤 gt 托着木棒的手可以移动 gt 眼睛能看到木棒的倾斜角度和倾斜趋势 xff08 角速度 xff09 类比到平衡小车中 xff0c 同理想让小车保
  • 数据结构 - 链式队列

    1 链式队列 链式队列 xff1a 用链表形式实现的队列 链表结点为队列数据存储区 xff0c 链表结点包括两部分数据存储 区和指针存储区 数据存储区 xff1a 存放真实有效数据的区域 指针存储区 xff1a 存放下一个链表结点的地址 2
  • Sugar BI:如何在下钻中改变地图范围

    下钻是指在点击本图表的某一部分时 xff0c 可以打开一个新的图表或超链接 xff0c 进而查看与图表此部分相关的详细信息 Sugar BI支持无限层级的下钻 xff0c 只要下钻的弹出展示的图表也是支持下钻的 xff0c 就可以继续配置进
  • darknet_ros部署及测试

    一 darknet ros部署 1 创建ROS工作空间 span class token function mkdir span p catkin ws src span class token builtin class name cd
  • ensp 查看命令(display)

    ensp 查看命令 xff08 display xff09 span class token number 1 span display this span class token comment 查看当前配置过的命令 span span
  • 关于HTTP 和 HTTPS

    什么是http 超文本传输协议 Http xff0c HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议 xff0c 设计Htto最初的目的是提供一种发布和接收HTML页面的方法 xff0c 他可以
  • 关于事件流的简单理解

    JS事件 1 首先 xff0c 什么是事件 xff1f JavaScript和Html发生交互是通过事件来实现的 xff0c 事件 xff0c 就是文档或浏览器窗口发生一些特定的交互的瞬间 2 什么是事件流 xff1f 事件流就是 xff0