事件捕获、冒泡的工作原理

  • 什么是事件流
  • 什么是事件冒泡?
  • 什么是事件捕获
  • 图解

什么是事件流

事件流是指从页面中接收事件的顺序。也就是说,当一个事件产生时,这个事件的传播过程就是事件流。

什么是事件冒泡?

IE中的事件流叫事件冒泡。事件冒泡是指事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(文档)。对于HTML来说,当一个元素产生一个事件时,它会把这个事件传递给它的父元素,父元素接收到之后,还要继续传递给它的上一级元素,就这样一直传播到document对象(一些浏览器会传播到window对象)。

在一个对象上触发某类事件(如click)时,如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序;如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器中是window )。

冒泡型事件触发顺序是指从最特定的事件目标(触发事件对象)到最不特定的事件目标对象(document对象)。

JavaScript冒泡机制是指如果某元素定义了事件A,如click 事件,如果触发了事件之后,没有阻止冒泡事件,那么该事件将向父级元素传播,触发父类的click 事件。

什么是事件捕获

事件捕获是指不太具体的元素更早地接收到事件,而最具体的节点最后接收到事件。它们的用意是在事件到达目标之前就捕获它;也就是与冒泡的过程正好相反。以HTML的click事件为例,document对象(DOM0级规范要求从document开始传播,但是现在的浏览器是从window对象开始的)最先接收到click 事件,然后事件沿着DOM树依次向下传播,一直传播到事件的实际目标。

图解

网景(Netscape)公司团队的事件流采用事件捕获方式,而微软(Microsoft)公司的事件流采用事件冒泡方式,W3C对网景公司和微软公司提出的方案进行了中和处理,规定了事件发生后,首先实现事件捕获,但不会对事件进行处理;然后进行到目标阶段,执行当前元素对象的事件处理程序,但它会被看成是冒泡阶段的一部分;最后实现事件的冒泡,逐级对事件进行处理。

事件捕获、冒泡的工作原理相关推荐

  1. 浏览器事件捕获冒泡以及阻止冒泡

    浏览器事件捕获冒泡以及阻止冒泡 一.浏览器的dom事件流 dom事件流有三个阶段,捕获阶段->目标阶段->冒泡阶段,不管是有没有绑定事件,只要发生点击事件,事件的处理将从DOM层次的根开始 ...

  2. 事件委托、事件冒泡与事件捕获

    目录 事件委托: 1.原理 2.实现 ①在介绍事件委托的方法之前,我们先来看一段一般方法的例子: ②那么我们用事件委托的方式做又会怎么样呢? ③要是每个li被点击的效果都不一样,那么用事件委托还有用吗 ...

  3. Mr.J--JS事件监听(捕获冒泡)

    目录 addEventListener 取消绑定事件 removeEventListener 事件捕获&冒泡 事件冒泡 事件捕获 事件捕获和事件冒泡同时存在 1.捕获在前 2.冒泡在前 注意 ...

  4. Springboot事件监听机制:工作原理

    目录 前言 1.观察者模式 1.1观察者模式的核心元素 1.2观察者模式的工作流程 2.springboot事件监听机制的基本工作原理 2.1事件发布器是什么时候在哪里产生的呢? 2.2事件监听器是什 ...

  5. JavaScript事件捕获与事件冒泡原理 IE和DOM之间存在哪些主要差别

    事件--怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别. (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -&g ...

  6. 事件冒泡、事件捕获、http与https

    事件流.事件冒泡.事件捕获.阻止事件冒泡.http与https 目录 事件流.事件冒泡.事件捕获.阻止事件冒泡.http与https 一.事件流 二.事件冒泡 三.事件捕获 四.阻止事件冒泡 五.取消 ...

  7. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

  8. JS 事件冒泡和事件捕获

    原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...

  9. Javascript事件模型系列(二)事件的捕获-冒泡机制及事件委托机制

    一.事件的捕获与冒泡 由W3C规定的DOM2标准中,一次事件的完整过程包括三步:捕获→执行目标元素的监听函数→冒泡,在捕获和冒泡阶段,会依次检查途径的每个节点,如果该节点注册了相应的监听函数,则执行监 ...

最新文章

  1. ubuntu bless 16字节每行
  2. MySQL 里设置或修改系统变量的几种方法,这个写的非常清晰
  3. Sql Server之旅——第九站 看看DML操作对索引的影响
  4. 垃圾回收机制和JVM垃圾回收常见算法
  5. python 使用 with open() as 读写文件-给Python学习者的文件读写指南(含基础与进阶)...
  6. CSS背景图像的简单响应
  7. 手机屏幕怎么计算机,怎么将手机屏幕投屏到电脑上
  8. 分享一款手机最强Python编程神器,用手机运行Python。天秀!
  9. 看看!挺动人的故事!!!
  10. Ring Buffer介绍
  11. 股票入门浅学20210721
  12. 不知道ai绘画如何使用?这几个ai绘画软件推荐给你
  13. Windows版本,OS内核版本,Windows SDK之间的关系(附 :Windows纯净系统下载以及更新)
  14. 2015年春节联欢晚会节目单
  15. 回字的四种写法之编程
  16. 如何发布自己的项目到Maven中央仓库?
  17. 【PIE-Engine Studio学习笔记05】图像分类——非监督分类
  18. Docker容器修改hosts文件重启不变
  19. 啊哈,算法自学记——9th
  20. 最新代雅阁噪音测试软件,全新雅阁噪音测试

热门文章

  1. rust油桶用什么打_腐蚀rust新手入门指南 游戏新萌拿好不谢!
  2. smack+openfire创建IM群聊、加入群聊、发送消息、退出群聊(openfire学习记录二)...
  3. RS232转URAT光耦隔离器
  4. 微软收购诺基亚的诱因是什么
  5. 操作系统 ---多进程 Multiprocessing
  6. C++函数指针、函数对象与C++11 function对象对比分析
  7. android图片解码显示,android 图片解码显示流程
  8. IntelliJ IDEA神器快捷键
  9. myeclipse基本配置及优化和解决卡顿
  10. mysql编码转换工具_MySQL GBK→UTF-8编码转换