javascript事件冒泡

    一事件

         在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然后做出相应的动作。

         浏览器的事件表示的是某些事情发生的信号。事件的阐述不是本文的重点,尚未了解的朋友,可以访问W3school教程 进行了解,这将有助于更好地理解以下的内容 。


二冒泡机制

在javascript中,冒泡机制和在算法数据结构中的概念是不一样的。在这里主要的反馈的是事件流过程中事件捕获后的一个冒泡反馈的过程。


正如这张图看到的,这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树;事件从dom 树的底层 层层往上传递,直至传递到dom的根节点。

也就是如下图


在这里,我写个简单的案例进行分析下;

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>事件冒泡案例</title>
	<style type="text/css">
	body{padding: 0;margin:0;}
	div{padding: 100px;}
	</style>
</head>
<body>
	<div style="background:#ccc;">
		<div style="background:#808008;">
			<div style="background:red;"></div>
		</div>
	</div>
</body>
</html>




跟着为其添加点击事件

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>事件冒泡案例</title>
	<style type="text/css">
	body{padding: 0;margin:0;}
	div{padding: 100px;}
	</style>
</head>
<body>
	<div style="background:#ccc;" οnclick="alert('能冒泡到最顶层');">
		<div style="background:#808008;" οnclick="alert('能冒泡到中间层div');">
			<div style="background:red;" οnclick="alert('能冒泡到里层');"></div>
		</div>
	</div>
</body>
</html>





一般地,事件在传递过程中会有一些信息,这些是事件的组成部分:事件发生的时间+事件发生的地点+ 事件的类型+事件的当前处理者+其他信息,

 b.终止事件的冒泡
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"/>
	<title>事件冒泡案例</title>
	<style type="text/css">
	body{padding: 0;margin:0;}
	div{padding: 100px;}
	</style>
	<script type="text/javascript">
    window.οnlοad=function(){
    	
    	var odiv=document.getElementById('div3');
    	odiv.οnclick=function(ev){
    		var Event=ev||event;
    		Event.alert("要被阻止了");
    		Event.cancelBubble=true;

    	}
    }

	 </script>
</head>
<body>
	<div style="background:#ccc;" οnclick="alert('能冒泡到最顶层');">
		<div style="background:#808008;" οnclick="alert('能冒泡到中间层div');">
			<div id="div3" style="background:red;"></div>
		</div>
	</div>
</body>
</html>

这样添加了cancelBubble之后,点击div3图层的冒泡事件就被阻止了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值