事件捕获与事件冒泡

JavaScript——事件捕获和事件冒泡 JavaScript中事件捕获和事件冒泡的来由以及具体讲解,阻止事件捕获和冒泡(事件传播)的方法。 阅读详情

事件冒泡和事件捕获最初的产生是由于下面这种情况:

<span style="font-size:18px;"><body>
	<div id="outer">
		<p id="inner">click me~</p>
	</div>
</body></span>


如果“div”和“p”都有一个事件点击函数,那么应该先执行哪一个呢?

如果先执行inner就是事件冒泡,先执行outer就是事件捕获。

而这两种完全不同的思想就是由著名的微软和网景提出来的!

如果事件的发生顺序为:p-> div-> body-> html-> document就是事件冒泡

如果事件的发生顺序为:document-> html-> body-> div-> p就是事件捕获


那如何应用或者说解决这种对立的情况呢?

           别急,还有addEventListener第三个参数

在“DOM2级事件”中规定的事件流同时支持了事件捕获阶段和事件冒泡阶段,addEventListener方法完美的帮我们解决了是想冒泡还是捕获~~

  element.addEventListener(event, function, useCapture)

第一个参数是需要绑定的事件,第二个参数是触发事件后要执行的函数。而第三个参数的默认值为false,表示在事件冒泡的阶段调用时间处理函数,如果参数为true,则表示在事件捕获的阶段调用处理函数


事件冒泡VS事件捕获 阅读详情

相关推荐

关于事件冒泡和事件捕获

这里写自定义目录标题什么是事件事件流事件冒泡和事件捕获的概念事件冒泡事件捕获事件冒泡示例事件捕获示例阻止冒泡方法一方法二(jQuery,同时会阻止默认事件) 什么是事件 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。JavaScript与HTML之间的交互就是通过事件实现的。可以用侦听器或处理程序来预定事件,以便事件发生时执行相应的代码。 事件流 事件流描述的是从页面接收事件的顺序。 为什...

BIGDgreen 1101

Javascript事件冒泡、事件捕获及事件相关

####javascript中三种事件方式: 1. onXXX方式 该方式为最简单直接使用事件的方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,...

u014268482的博客 207

STM32+Air724UG基于阿里云物联网平台的OTA远程升级实战指南

本文提供了一套基于STM32微控制器与Air724UG 4G Cat.1通信模组,通过阿里云物联网平台实现OTA远程升级的完整实战指南。文章详细阐述了BootLoader与用户程序的分工、云端配置、固件下载与烧写流程,并分享了关键代码实现与常见问题排查方法,帮助开发者快速为物联网设备部署稳定可靠的无线升级功能。

weixin_28285943的博客 514

理解事件捕获和事件冒泡

参考资料浅谈事件冒泡与事件捕获 一年前刚开始接触JavaScript的时候就看过有关事件冒泡和事件捕获的文章,但是当时只是看过了就是看过了,没有自己实际的实践,并没有什么自己的理解在里面,属于转眼就忘的那种状态,这段时间由于参加百度的ife前端培训,做到js方面的任务时,决定仔细的学习一下时间捕获和事件冒泡,所以就有了今天这篇文章。 ps:其实前两天就想写了,但无奈图书馆的网一直连不上,只好推到

Hey firefly 6517

【ESP32实战】SPI驱动ILI9341屏幕:从基础绘图到汉字显示

本文详细介绍了如何使用ESP32通过SPI驱动ILI9341屏幕,从基础连接、SPI初始化到实现基础绘图、数字显示及汉字显示的全过程。文章包含实用的代码示例和优化技巧,帮助开发者快速掌握屏幕驱动技术,提升显示性能。特别针对常见问题如花屏、刷新率等提供了解决方案。

weixin_29164091的博客 621

从入门到实战:openEuler 系统管理与运维笔记(持续更新)

本文为openEuler系统管理与运维的实战笔记,从CentOS迁移者视角切入,详细介绍了openEuler的生态兼容性、内核优化及安全特性。内容涵盖系统安装规划、虚拟机部署、基础命令操作、文件系统管理以及用户权限配置等核心运维技能,旨在帮助读者快速上手并掌握这一企业级操作系统的日常管理。

weixin_29207149的博客 222

JavaScript事件捕获与事件冒泡

冒泡机制 气泡从水底开始往上升,由深到浅,升到最上面。在上升的过程中,气泡会经过不同深度层次的水。相对应地:这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树;事件从dom 树的底层,层层往上传递,直至传递到dom的根节点。当子元素与父元素有相同的事件时,当子元素被触发时父元素也会被触发冒泡机制 在不同浏览器中,冒泡的程度不同: IE 6.0: div -&gt; body...

weixin_42331327的博客 6358

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

本教程基于群晖的NAS设备DS423+的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。MetaTube是一个媒体服务器插件,主要用于Emby和Jellyfin媒体服务器。它的主要功能是从互联网上抓取内容并响应 JSON 数据,然后通过预安装的 MetaTube 插件请求服务器并下载相应的元数据,以与 Jellyfin/Emby 服务器配合使用。使用 MetaTube 的步骤大致如下:部署后端:首先,需要部署一个名为​ 的后端 API 服务器来抓取内容。

小小笔记大大用处 1万+

【JavaScript】十六、事件捕获和事件冒泡

此时,点击红色的儿子元素部分,因为红色部分也属于绿色的父亲div,更属于整个document,所以三个点击事件都触发,但因为现在addEventListener是true,所以,是事件捕获,从document到父div再到子div,因此,效果是:弹窗依次从父元素到子元素。对比给div绑定一个点击事件,当事件被触发时:会经历两个阶段,分别是捕获阶段、冒泡阶段,事件流则指的是事件完整执行过程中的这个流动路径。事件冒泡🫧:当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。

llg___的博客 1747

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1337

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

YOLOv5/v7/v8/v9/v10/v11/v12/13目标检测结果解析,超w字精读,IoU、GIoU、DIoU、CIoU、EIoU详细解释,精确率、召回率、AP、mAP与P-R 曲线图深度解析

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1410

js中的事件冒泡与事件捕获

js中的事件冒泡与事件捕获。当点击黑色容器时,开始进行事件捕获,Js事件流从window上往事件触发处传播,遇到注册的捕获事件就会触发;但是捕获阶段默认是不处理的(addEventListener第三个参数默认是false),紧接着传播到事件触发处,触发注册的事件,打印div3,然后进行冒泡阶段从事件触发处 往window上传播,遇到注册的冒泡事件会触发,打印div2,再打印div1。就是因为点击了盒子的子元素(黄色和红色部分),事件冒泡到了绑定拖拽事件的父元素身上(蓝色部分),导致触发的是拖拽效果。

~~~ 3909

QGIS编译(跨平台编译)之五十六:QScintilla编译、QScintilla安装(Windows、Linux、MacOS环境下编译、安装)

QGIS编译;QScintilla编译、QScintilla安装(Windows、Linux、MacOS环境下编译、安装)

LuckyHanMo的博客 1896

事件冒泡和捕获

事件冒泡和捕获

weixin_58155690的博客 6615

PCL 循环体素滤波

本文提出了一种自动循环体素滤波算法,用于解决点云配准中分辨率差异大、参数设置复杂的问题。算法通过计算点云分辨率(公式1),采用迭代方式调整体素尺寸(公式2),逐步逼近目标分辨率。该方法在保留几何特征的同时有效精简数据量,实现了均匀分辨率的自动调整。实验通过PCL库实现,展示了原始点云与滤波结果的对比效果,验证了算法在减少数据规模方面的有效性。该方法为点云配准提供了预处理解决方案,相关成果已发表于SCI期刊。

点云侠的博客 281

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

什么是事件冒泡与事件捕获,如何阻止事件冒泡

什么是事件冒泡与事件捕获,如何阻止事件冒泡 事件冒泡 事件由具体的dom节点 接收,然后逐级向上传播到不具体的节点。是一种由内到外的传播

qq_36537108的博客 2629

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

事件冒泡与事件捕获详解

事件流 概念 首先,我们来了解一下什么是事件流。 事件流:当事件发生时,会在发生事件的元素节点与DOM树根节点之间按照特定的顺序进行传播, 这个过程称之为事件流。 (当页面触发一个事件时,会按照一定的顺序来响应事件,事件的响应过程称为事件流。) 分类 事件流可分为冒泡型事件流、捕获型事件流。 (1)事件冒泡:微软公司提出的,事件由子元素传递到父元素的过程叫做冒泡(false)。 查找事件(事件响应)的顺序:文本节点–>元素节点—>body—>html—>document(例如点击事件

星河梦~的博客 5049

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

事件冒泡与捕获

事件流流程:先捕获(根→目标),后冒泡(目标→根)。事件绑定:通过的第三个参数控制阶段(true=捕获,false=冒泡)。事件控制阻止传播,阻止默认行为,额外中断同节点事件。应用场景:捕获适合全局控制,冒泡适合事件代理(减少内存占用),阻止方法用于避免事件干扰。

胡西风的博客 753

事件的冒泡与捕获机制

本文介绍了JavaScript事件流中的冒泡和捕获机制。冒泡是从目标元素向外层父元素传播(默认),捕获则是从外层向内层传播(需设置true)。两者主要区别在于传播方向:冒泡由内向外,捕获由外向内。通过stopPropagation()可阻止事件传播。文中还列举了支持冒泡/捕获的事件(如click、submit等)和不支持的事件(如focus、load等),并提供了代码示例说明如何使用这些机制及阻止传播的方法。

W2004828的博客 672

关于事件捕获和事件冒泡的理解

我一直对事件捕获和事件冒泡是挺困惑的,好像理解了,但又感觉哪里不对。这篇文章打算深入探讨一些细节性的问题,更好的理解事件捕获和事件冒泡。

ScottePerk的博客 1229

js之事件冒泡,事件捕获,事件委托

事件捕获:当一个事件触发后,从window对象出发,不断经过下级节点,直到目标节点,这个过程就是事件捕获。自内而外,从根到叶,从小到大。 事件冒泡:即是事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。当事件到达目标节点之后,会沿着捕获阶段的路线原路返回,同样所有经过节点会被触发。即是自内而外,从叶到根,从小到大。 说起来很复杂,其实用一个示列就很容易理解 <!DOCTYPE...

angula 1371

事件捕获和事件冒泡有什么区别

例如,当用户点击一个按钮时,该按钮的点击事件会被触发,但在触发该按钮的点击事件之前,事件会先从文档根节点开始向下捕获,可能触发该按钮的祖先元素、父元素的点击事件。当用户点击按钮时,事件会先在子元素上触发,然后事件会向上冒泡到父元素,最终触发父元素的点击事件处理函数。事件冒泡是指当一个元素上的事件被触发后,该事件会从该元素开始向上冒泡,依次触发父元素的相同事件,直到冒泡到文档根节点为止。例如,当用户点击一个按钮时,该按钮的点击事件会被触发,然后该事件会向上冒泡,可能触发该按钮的父元素、祖先元素的点击事件。

哼哼哼哼哼 2202

JavaScript 事件捕获与事件冒泡

如果给每个标签都定义事件,当我们点击其中的< a >标签时,会发现绑定在< div >和< p >标签上的事件也被触发了,这到底是为什么呢?为了解答这一问题,微软和网景两公司提出了两种不同的概念,事件捕获与事件冒泡:事件捕获:由微软公司提出,事件从文档根节点(Document 对象)流向目标节点,途中会经过目标节点的各个父级节点,并在这些节点上触发捕获事件,直至到达事件的目标节点;

前端梦工厂 716

6. 什么是事件冒泡和事件捕获

事件冒泡:从目标元素向上触发父元素的事件监听器;事件捕获:从最外层向下触发,再到目标元素;默认情况下,事件在冒泡阶段触发;使用可以在捕获阶段监听;事件委托是基于冒泡的常用优化手段;可以阻止事件传播,但应谨慎使用。✅建议:根据实际需求选择在冒泡或捕获阶段监听事件,合理使用事件委托,提升性能和可维护性。在 JavaScript 中,事件冒泡(Bubbling)和事件捕获(Capturing)是 DOM 事件传播的两个阶段。理解这两个阶段有助于我们更精确地控制事件的触发顺序,特别是在嵌套元素中。

weixin_64684095的博客 1213

JS事件冒泡与捕获

什么是冒泡与捕获 以click点击事件为例。假如我们有一个多层结构标签。如下图,是4个div嵌套。每个div都有点击的监听事件,分别输出1234。当我们点击最里面的div时,点击事件开始传递,传递的全过程是1-2-3-4-4-3-2-1。 前半部分,事件从最外面的父div依次传递到最里面的后代div,1-2-3-4这部分我们叫捕获过程。 之后事件又从最里层的后代div逐层传出,4-3-2-1这部分我们叫冒泡过程。 如果我把捕获监听器和冒泡监听器都加上,如下图这样。 这时我们有8个监听器了,在捕获过程

光脚丫思考的专栏 1万+

JavaScript 事件冒泡与事件捕获

当浏览器中的某个元素触发了一个事件(比如click),这个事件并不是只在触发元素上执行一次,而是会按照特定的顺序在不同的 DOM 节点之间传播,这个传播过程就是事件流。事件捕获阶段目标阶段事件冒泡阶段注意:在旧版本 IE(IE8 及以下)中,只支持事件冒泡,不支持事件捕获。事件捕获:从外向内传播,事件冒泡:从内向外传播,(默认)阻止冒泡阻止冒泡 + 阻止后续同类型事件7.事件捕获与冒泡的完整流程图完整事件流顺序图图解说明捕获阶段(Capture Phase)事件从最顶层的window。

2501_92414735的博客 838
上一篇: 常见http状态码详解
下一篇: JavaScript垃圾回收机制
Crazier_qi
博客等级 码龄11年 13粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值