【Javascript】事件的冒泡与捕获传递方式

Spring Boot应用Docker化实战:从Dockerfile编写到镜像推送完整流程 本文详细介绍了将Spring Boot应用Docker化的完整实战流程。从环境准备、项目审视,到编写高效且安全的Dockerfile,重点讲解了多阶段构建、镜像层优化、Spring Boot分层JAR等核心技巧,并涵盖了镜像构建、验证、调试以及最终推送至仓库并集成CI/CD的最佳实践,帮助开发者构建生产级Docker镜像。 阅读详情

事件有冒泡和捕获两种传递方式,冒泡传递方式先触发内部元素的事件,后触发外部元素的事件,捕获传递方式则相反。

以下是测试代码示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>冒泡与捕获</title>
    </head>
    <style>
    .divTest {
		margin: 20px auto;
		width: 300px;
		height: 180px;
		border: 2px solid red;
	}
	.pTest {
		width: 100px;
		border: 2px solid green;
		cursor: pointer;
		margin-left: 75px;
		text-align: center;
	}
    </style>
    <body>
        <div class="divTest" id="id1">
            <p class="pTest" id="bubbing1">
                冒泡
            </p>
        </div>
        <div class="divTest" id="id2">
            <p class="pTest" id="bubbing2">
                阻止冒泡
            </p>
        </div>
        <div class="divTest" id="id3">
            <p class="pTest" id="capture1">
                获捕
            </p>
        </div>
        <div class="divTest" id="id4">
            <p class="pTest" id="capture2">
                阻止获捕
            </p>
        </div>
        <script>
            // 冒泡
			var x = document.getElementById("id1");
			var y = document.getElementById("bubbing1");
			x.addEventListener('click', function () { alert("我是外层元素-div"); }, false);
			y.addEventListener('click', function () { alert("我是内层元素-p"); }, false);
			// 阻止冒泡
			x = document.getElementById("id2");
			y = document.getElementById("bubbing2");
			x.addEventListener('click', function () { alert("我是外层元素-div"); }, false);
			y.addEventListener('click', function (e) {
				alert("我是内层元素-p,阻止冒泡行为要加到内层事件上");
				stopBubble(e);
			}, false);

		    // 捕获
			x = document.getElementById("id3");
			y = document.getElementById("capture1");
			x.addEventListener('click', function () { alert("我是外层元素-div"); }, true);
			y.addEventListener('click', function () { alert("我是内层元素-p"); }, true);
			// 阻止捕获
			x = document.getElementById("id4");
			y = document.getElementById("capture2");
			x.addEventListener('click', function (e) {
				alert("我是外层元素-div,阻止捕获行为要加到外层事件上");
				stopBubble(e);
			}, true);
			y.addEventListener('click', function () { alert("我是内层元素-p"); }, true);


			function stopBubble(e) {
				if (e && e.stopPropagation) {
					e.stopPropagation();
				} else {
					window.event.cancelBubble = true;
				}
			}
        </script>
    </body>
</html>
Android Update Engine 分析(三四)OTA 签名都支持哪些算法? 写了几十篇还没涉及到 OTA 签名算法细节,OTA 讨论群也很少问这个,毕竟签名算法纯理论的问题,一旦实现好就极少需要改动,只需要进行一些配置,准备好签名的秘钥和证书就可以了。限于签名的算法理论太过于抽象,本篇不讨论签名算法细节,但会总结一些签名操作。以及 Android OTA 包支持的签名算法。本文主要分析 Update Engine 中支持的签名算法,以及这些算法的操作实现(不涉及原理部分),并总结签名和验签使用的 key。 阅读详情

相关推荐

手把手教学:利用AutoDL与vLLM快速部署DeepSeek-R1大模型实战指南

本文详细介绍了如何利用AutoDL平台和vLLM框架快速部署DeepSeek-R1大模型的实战指南。从服务器配置、vLLM安装优化到模型部署的两种方案,再到性能调优和生产环境建议,手把手教你高效完成大模型部署。特别针对国内开发者遇到的网络问题提供了稳定解决方案,并分享了显存优化、磁盘清理等实用技巧。

weixin_42531779的博客 326

【前端面试】何为事件监听?

事件监听 addEventListener()方法,用于向指定元素添加事件句柄,它可以更简单的控制事件,语法为 element.addEventListener(event, function, useCapture); 第一个参数是事件的类型(如 “click” 或 “mousedown”) 第二个参数是事件触发后调用的函数 第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的 事件传递有两种方式,冒泡和捕获 事件传递定义了元素事件触发的顺序,如果你将P元素插入到div元素中,用

Milk~每天分享一点点,技术进步一点点 563

LTspice基础教程-028.Timestep too small

Q: “Timestep too small” error message A: If the LTspice program can’t find a solution for the guessed time step, then the program decreases the time step and tries again. This can’t work forever. If...

gaoyong_wang的博客 2万+

冒泡传递和捕获传递

冒泡传递 当事件发生的时候,结构上存在有嵌套关系的元素,从内层到外层传递事件。在设置时,将addEventListener的第三个参数设置为false。例如: <body> <div class="a" style="background-color: red;"> <div class="b" style="background-color: green;"> <div class="c" style="background-color: bl

Cheris_LT的博客 434

从零到一:Admin.NET中Swagger与Knife4jUI的深度集成实践

本文详细介绍了在Admin.NET框架中深度集成Swagger与Knife4jUI的实践方法,从基础配置到高级定制,包括认证配置、安全增强、界面主题定制等。通过Furion框架简化配置,开发者可以快速构建专业且友好的API文档界面,提升团队协作效率。

defi6farmer的博客 406

机器视觉最全面试题总结

空洞卷积(Atrous Convolution)也叫做膨胀卷积、扩张卷积,最初的提出是为了解决图像分割在用下采样(池化、卷积)增加感受野时带来的特征图缩小,后再上采样回去时造成的精度上的损失。空洞卷积通过引入了一个扩张率的超参数,该参数定义了卷积核处理数据时各值的间距。可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样a. 是普通的卷积过程(dilation rate = 1),卷积后的感受野为3b. 是dilation rate = 2的空洞卷积,卷积后的感受野为5。

@bangbang的博客 9204

JavaScript事件机制:冒泡、捕获与委托

本文介绍了一个JavaScript事件机制的可视化演示工具,通过嵌套DOM元素展示事件传播路径。该工具包含以下核心功能:1)事件传播演示,通过三个嵌套DIV元素展示捕获和冒泡阶段;2)交互控制面板,可调整事件监听器设置;3)实时事件日志显示事件流过程;4)概念解析部分详细说明事件流三阶段原理和事件委托机制。演示采用不同颜色标识捕获和冒泡阶段,并提供代码示例和实际应用场景说明,帮助理解JavaScript事件处理机制。

油墨香^-^的博客 970

025、空间降噪与时域降噪:噪声抑制与细节保留的平衡艺术

《降噪技术的平衡艺术:空间与时域降噪的协同优化》 本文深入探讨了图像处理中空间降噪与时域降噪的技术原理与工程实践。空间降噪通过像素级处理提升单帧质量,而时域降噪则利用帧间信息增强稳定性。文章揭示了两种方法在实际应用中的矛盾点:过度降噪会导致细节损失,影响后续算法性能。作者结合车载环视系统等实战案例,详细分享了参数调优经验,包括运动自适应策略、边缘保持技巧和嵌入式平台优化方案。特别强调降噪的最终目标应服务于下游算法需求,而非单纯追求图像美观。文章为工程人员提供了从理论到实践的完整指导,展现了降噪技术在效果与性

sundong_81的博客 186

事件冒泡机制

事件的传递:标准事件流

YY的博客 1397

【技能】伪真openclaw主动式智能体—告别‘巨婴’AI工具人:体验主动智能体的魅力

摘要: 传统AI常因被动执行、缺乏闭环而令人抓狂。Proactivity主动执行能力将AI从"指令跟随者"升级为"主动合伙人",具备预判需求、自动推进、断聊恢复、问题自解等能力。其核心原理在于建立AI专属工作体系(持久化内存、动态任务层、临时缓存层、归档复盘层),通过7步闭环(感知触发→状态恢复→边界校验→方案探索→动作决策→执行落地→状态留存)确保安全高效。

海兰 207

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动

上一章节`Qemu`篇我们已经实现了我们`SOC`的`power reset`和 `power down` 寄存器,本章节我们就在`Linux driver`中去实现它

DSMGUOGUO的博客 540

【安卓笔记】touch事件的分发和消费机制

原文地址 http://blog.youkuaiyun.com/chdjj/article/details/22910581 总结: 1.事件传递的两种方式: 隧道方式:从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递。冒泡方式:从最内层子元素依次往外传递直到根元素或在中间某一元素中由于某一条件停止传递。  2.android对Touch Event的分发

hemiy的博客 444

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

js中事件传递两种方式:冒泡与捕获。

https://www.cnblogs.com/baiyangyuanzi/p/6627401.html https://www.cnblogs.com/christineqing/p/7607113.html

JerryQuery的博客 632

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

简单理解事件冒泡和事件捕获

解释:点击一个位置(这个位置既属于最外层,又属于中间层,还属于最内层),那么事件发生顺序为:内层—>中间----->外层。示例4:将最外层div1和中间层div2都绑定为捕获事件,那么触发顺序为:外层—>中间---->内层。示例3:只将最内层div3绑定为捕获事件,那么触发顺序为:内层—>中间----->外层。示例1:将最外层div1绑定为捕获事件,那么触发顺序为:外层—>内层---->中间。示例2:只将中间层div2绑定为捕获事件,那么触发顺序为:中间—>内层—>外层。

zzzz121380的博客 699

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JavaScript:web中的简单事件处理

首先应树立一种HTML、CSS、JavaScript三者独立的观念 JavaScript脚本的事件处理 不要在HTML元素中以属性的方式添加事件处理 <button onclick="doSomething()">Press me</button> 甚至是直接写入脚本代码 <button onclick="alert('Hello, this is my old-...

kafmws的博客 415

js中的事件冒泡,事件捕获,默认事件

js中的事件传递方式有两种: 冒泡 和 捕获。 事件冒泡 js中事件会以冒泡的形式由内到外的向上传递。由最内层点击元素向外扩散到最外层元素,激活外层注册的相应事件,这就是事件冒泡。 事件冒泡是js语言中事件的传递过程,传递方式,我们会需要用到它来做一下事情,但有时它的存在也会影响我们的操作。 使用:事件代理(事件委托) 什么是事件代理:利用事件冒泡的特性,将本应该注册在子元素上的处理事件注册在父元素上,使用父元素来代理多个子元素的事件。 这样做可以减少DOM操作,减少事件的注册步骤,提升性能

lwx931449660的博客 1870

javascript的事件冒泡和事件捕获

事件传递有两种方式:冒泡与捕获。 事件传递定义了元素事件触发的顺序。 如果你将 元素插入到 元素中,用户点击 元素, 哪个元素的 "click" 事件先被触发呢? 在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: 元素的点击事件先触发,然后会触发 元素的点击事件。 在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: 元素的

wangweiscsdn的博客 327

常见问题/知识点记录(三)

一 数据类型 一 基本数据类型 String Number Boolean Undefined Null 二 引用数据类型 Object Function Array 什么是数据 存储在内存中代表特定信息对二进制 特点 可传递 可运算 什么是内存 内存通电后产生的可存储数据的空间 内存的分类 堆(对象)和栈(全局变量/局部变量) 什么是变量 可变化的量 由变量名和变量值组成 每个变量都对应一小...

十二的博客 168

事件的冒泡和捕获

事件的冒泡,简言之,事件的触发顺序从内部开始 例子如下: var box_father = document.getElementById('box_father'); var box_grandfather = document.getElementById('box_grandfather'); var p1 = document.getElementById(...

weixin_43228393的博客 174

JavaScript dom事件 事件传递 事件冒泡 事件方法

HTML 事件是发生在 HTML 元素上的事情。当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。HTML 事件可以是浏览器行为,也可以是用户行为。。

zdn135860_的博客 575

事件冒泡或事件捕获

捕获、冒泡

weixin_45855469的博客 238

Javascript事件模型:捕获和冒泡

在Javascript中用户交互的核心部分就是事件处理。本文为对事件模型和处理机制的总体性描述。Event是什么?event是用户操作网页时发生的交互动作,比如click/move, event除了用户触发的动作外,还可以是文档加载,窗口滚动和大小调整。Event模型是什么?Event模型指的是浏览器如何处理发生的事件。不同的浏览器其处理机制也不尽相同,甚至截然相反。一般而言,某个界面元素发生单个

陈小峰(iefreer)的专栏 9393

JavaScript中添加事件句柄

添加事件句柄的好处:html和JavaScript分离,可读性更强 添加鼠标事件句柄的方法: document.getElementById("id").addEventListener("click",fucntionName) 去除鼠标事件句柄的方法: element.removeEventListener("mousemove", myFunction) ...

世间迷途小书童 345

JS的事件冒泡、事件捕获和事件委托,CSS字体样式值

为了提高效率和速度,所以我们这时可以采用事件委托,只给ul绑定一个事件,根据事件冒泡的规则,只要你点了ul里的每一个li,都会触发ul的绑定事件,我们在ul绑定事件的函数里通过一些判断,就可以给这100li都触发点击事件了。我们还是只点击最中间的红色box,和上一次一样,也是三个box都触发了事件,但是顺序反过来了,紫色>绿色>红色,这种现象称为事件捕获。我们仅仅是点击了红色的box,但是绿色和紫色的box也被触发了打印事件,触犯顺序是 红色>绿色>紫色,这种现象就是事件冒泡了。//ie阻止默认事件。

m0_60607675的博客 415

《大学生前端成长记》 ---JavaScript基础 --冒泡(Bubble)和取消冒泡(cancelBubble)

Javascript的冒泡,原来是这样! 事件传递有两种方式:冒泡与捕获。 冒泡(Bubble) 举个例子,我碰了你的手,你的手属于你,所以我也就碰了你。 就是这么简单,如果还不明白,那就看下面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xht...

ChangAnbaba的博客 599

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

1.事件冒泡从下至上。当给父子元素的同一事件绑定方法的时候(比如click点击事件),触发子元素身上的事件,执行完毕之后,也会触发父级元素相同的事件。 2. 事件捕获:从上至下到指定元素。当出发子元素身上到事件的时候,先触发父元素,然后再传递给子元素。 addEventListener中有三个属性,第三个属性是布尔值。false为事件冒泡,true 为事件捕获 ...

weixin_62614119的博客 1891
上一篇: 【PHP】php7 配置 xdebug 进行调试
下一篇: 【vue】组件的使用
November's  chopin
博客等级 码龄10年 10粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值