首页 > 其他分享 >2024-1-19事件冒泡

2024-1-19事件冒泡

时间:2024-01-22 09:04:03浏览次数:26  
标签:width 19 height 2024 color 冒泡 click 事件

目录

事件冒泡

什么是事件冒泡

事件冒泡是一个事件处理机制,在这个机制中,当一个元素上发生事件(比如点击),这个事件不仅在该元素上触发,还会向上通过父元素传播,依次触发每个父元素上的同类型事件,直到到达文档的根部。这个过程就像气泡从水底升到水面一样,因此被称为冒泡。若要阻止事件继续冒泡,可以使用event.stopPropagation()方法。

冒泡事件例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件冒泡</title>
		<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
		<style>
			#a{
				width: 500px;
				height: 500px;
				background-color: red;
			}
			#b{
				width: 400px;
				height: 400px;
				background-color: green;
			}
			#c{
				width: 200px;
				height: 200px;
				background-color: black;
			}
		</style>
	</head>
	<body>
		<div id="a">
			<div id="b">
				<div id="c"></div>
			</div>
		</div>
		<script>
			$("#a").on("click",function(){
				alert('第一')
			});
			$("#b").on("click",function(){
				alert("第二")
			});
			$("#c").on("click",function(){
				alert('第三')
			});
		</script>
	</body>
</html>

在这个代码里面当我点击id为c的标签时,它会弹出三次窗,但是我只要那个它自己的弹窗

冒泡情况如图

对于这钟情况就可以使用event.stopPropagation()方法来解决

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件冒泡</title>
		<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
		<style>
			#a{
				width: 500px;
				height: 500px;
				background-color: red;
			}
			#b{
				width: 400px;
				height: 400px;
				background-color: green;
			}
			#c{
				width: 200px;
				height: 200px;
				background-color: black;
			}
		</style>
	</head>
	<body>
		<div id="a">
			<div id="b">
				<div id="c"></div>
			</div>
		</div>
		<script>
			$("#a").on("click",function(){
				alert('第一')
			});
			$("#b").on("click",function(){
				alert("第二")
			});
			$("#c").on("click",function(e){
				alert('第三')
				e.stopPropagation()//该方法会让事件点击到这里执行这里面的代码,确保不会继续冒泡
			});
		</script>
	</body>
</html>

但是如果我点击id为b的标签它还是会继续冒泡到id为a的标签,因为这个方法只会将冒泡停在它被调用的地方。

标签:width,19,height,2024,color,冒泡,click,事件
From: https://www.cnblogs.com/lzyzjb/p/17979225

相关文章

  • 每日一题 2024-1-22 最大交换
    1.题目(中等)原题链接给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例1:输入:2736输出:7236解释:交换数字2和数字7。示例2:输入:9973输出:9973解释:不需要交换。注意:给定数字的范围是\([0,10^8]\)2.解题思路贪心,......
  • 2024最新版Xmind for Windows下载安装教程
    软件介绍:LifetimeXMindforWindows:一款全新的思维导图软件如果你是一个喜欢用思维导图来组织思路、管理项目、记录灵感的人,那么你一定不会陌生XMind这个品牌。XMind是一款在思维导图领域表现出色的软件,它拥有遍布全球的大量用户,不仅为用户提供创建思维导图的功能,而且还提供开源。......
  • CVE-2018-19518复现练习
    概述漏洞概述:imap_open函数在传递邮箱名给ssh之前没有正确过滤接收的参数,导致攻击者可以利用-oProxyCommand参数向IMAP服务器发起命令执行恶意代码影响版本:Ubuntu、Debian、RedHat、SUSE环境搭建cd/CVE-2018-19518docker-composeup-d查看网站的组件直接看页面也没有什么......
  • Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
    ToyotaProgrammingContest2024#1(AtCoderBeginnerContest337)A-Scoreboard代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;void......
  • 2024 礼品 Power Adapter and Connnect Specifications
    1.PowerAdapter30WChargeyourdevicesUSB-C,USB-A(Plugtypevariesbyregion,OnlyEU&UKplugareapprovedandsuitableforuseinSingapore.)Model:ILINC30WOutputpower:30WMax.Operatingtemperature:0-45°CAverageactiveefficiency:Min81.......
  • 2024-1-21
    2024-1-211787C-RemovetheBracket#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;constintN=2e5+10;intn,k;inta[N];intb[N][2];intdp[N][2];voidsolve(){ cin>>n>>k......
  • 2024最新版Xmind for MAC下载安装教程
    软件介绍XMindforMac24.0内置激活版是一款专业的思维导图软件,本版本是永久激活版,可以帮助用户更好地组织思维、管理信息、规划项目和解决问题。它提供了丰富的模板和工具,使用户能够创建美观、清晰、易于理解的思维导图。2024XmindforMac下载链接:链接:https://pan.xunlei.com/s......
  • 20240117进度汇报
     #!/usr/bin/envpythonfrom__future__importprint_functionimportcollectionsimportcsvimportloggingimportosimportSimpleITKassitkimportradiomicsfromradiomicsimportfeatureextractordefmain():outPath=r''inputCS......
  • 2024年计划
    2024年计划前言回顾上一年,零输出,实在是不应该。在新的一年给自己定下新的目标,坚持写一些文章输出,有些东西只是看了终究是不深刻,还是需要自己思考一遍,从自己的角度向别人再解释一遍,能让别人也懂,这才算是真的转化为了自己的只是体系。也许正是因为这一年没有有效输出,才会在回顾的......
  • Go语言核心36讲 19 | 错误处理(上)
    提到Go语言中的错误处理,我们其实已经在前面接触过几次了。比如,我们声明过error类型的变量err,也调用过errors包中的New函数。今天,我会用这篇文章为你梳理Go语言错误处理的相关知识,同时提出一些关键问题并与你一起探讨。我们说过error类型其实是一个接口类型,也是一个Go语言的内......