JS事件冒泡

首先了解什么是JS事件冒泡:在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。  

如何来阻止事件冒泡? 先看下倒子,思考下点击“hr_three”弹出信息顺序。

<div id="divOne" onclick="alert('我是最外层');"> 
<div id="divTwo" onclick="alert('我是中间层!')"> 
<a id="hr_three" href="http://www.baidu.com" mce_href="http://www.baidu.com" onclick="alert('我是最里层!')">点击我</a> 
</div> 
</div>

运行顺序:我是最里层!--> 我是中间层!--> 我是最外层!最后是连接到百度。
本来只是想“hr_three”弹出的,其他的不弹的。这就是事件冒泡,从里向外冒泡。

阻止事件冒泡方法

1.event.stopPropagation()方法,event.cancelBubble=true (IE独有);只是阻止冒泡 

2.return false;阻止冒泡和默认行为(“hr_three”不会连接到百度)

还有一种只是阻止默认行为,不阻止冒泡方法event.preventDefault();

 

posted on 2013-06-20 12:00  西瓜真相  阅读(714)  评论(0)    收藏  举报