Web开发基础-JavaScript-29

本文介绍在JavaScript中如何通过使用特定函数来阻止事件冒泡,确保子元素事件触发时不会影响到父元素。通过一个具体的HTML示例,展示了如何在不同浏览器环境下实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript中如何阻止事件冒泡

应用场景:有些时候,我们不希望发生父元素的事件,只发生子元素的事件,这时候就需要阻止事件冒泡

案例演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>事件冒泡</title>
		<style type="text/css">
		
			div {
				border:1px solid red;
				width:300px;
			}
		
			p {
				border:1px solid blue;
				width:150px;
				margin:30px auto;
			}
			
			input {
				margin:30px auto;
			}
		</style>
		<script type="text/javascript">
		
			function f1(){
				alert("div");
			}
			
			function f2(){
				alert("p");
			}
			
			function f3(){
				
				alert("button");
			}
		
			
			//取消事件冒泡
			//cancelBubble在IE下有效 
			//stopPropagation在Firefox下有效 
			//如果e有值,并且e有stopPropagation这个属性,则调用e.stopPropagation()
			//否则执行window.event.cancelBubble=true
			if(e.stopPropagation) {
    			e.stopPropagation();
			} else {
   				 e.cancelBubble = true;
			}
			
			//阻止事件冒泡函数
			function stopBubble(e)
			{
			    if (e && e.stopPropagation){
			    	e.stopPropagation();alert(1);
			    }else{
			    	 window.event.cancelBubble=true;alert(2);
			    }
			       
			}
		</script>
	</head>
	<body>
		<div onclick="f1();">
			<p onclick="stopBubble(event);">
				<input type="button" value="点我" onclick="f3();">
			</p>
		
		</div>
	
	</body>
</html>

最终页面显示效果:点击按钮 由于P元素调用函数阻止了事件冒泡,导致DIV没有触发执行。

A>

B >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder_Boy_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值