关于js中的冒泡和捕获

js中的冒泡和捕获其实都是事件流的不同表现,这两者的产生是因为某两个大公司完全不同的事件流概念产生的。(事件流:是指页面接受事件的顺序)。

举个简单的例子:

			<div id="div">
				<p id="p">
					<input type="button" value="1"  id="in"/>
				</p>
			</div>
		<script type="text/javascript">
			var inp = document.getElementById("in");
			var myp = document.getElementById("p");
			var d = document.getElementById("div");
			
			inp.οnclick=function(){
				alert(1);
			}
			
			myp.οnclick=function(){
				alert(2);
			}
			d.οnclick=function(){
				alert(3);
			}

可以看到div里面有一个p标签,p标签里面又有一个input标签,这是一个典型的嵌套,并且每一层都设置了点击事件,这种情况下就会有冒泡(dom0级事件不支持捕获)。

当我们点击最里面的input标签的时候,事件的执行顺序是从内到外,即先执行input标签,在执行p标签,最后执行div标签。这就是所谓的冒泡。


捕获的话其实就是事件执行顺序的方向相反,是从外到内依次执行的、。so这就是冒泡和捕获,有的情况下我们会遇到这种情况,这时候就要灵活的设置事件来达到我们需要的效果。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值