冒泡事件 阻止冒泡事件

什么是冒泡事件?

当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。

举个栗子:

 1 <html xmlns="http://www.w3.org/1999/xhtml">
 2 <head>
 3     <title>阻止冒泡</title>
 4     <script src="script/jquery-1.11.0.min.js" type="text/javascript"></script>
 5     <script type="text/javascript">
 6         $(function () {
 7             $("div li").click(function (e) {
 8                 alert("我是li"); return false;
 9             })
10             $("div ul").click(function (e) { //这个e其实就是event 是一个事件的对象
11                 alert("我是ul"); e.stopPropagation();
12             })
13
14             $("div").click(function (e) {
15                 alert("我是div");
16             })
17
18             //e.stopPropagation();就是阻止冒泡,如果不写这句,在弹出 “我是li”后就会弹出“我是ul”,然后就会弹出“我是div”。在这里添加了e.stopPropagation();之后,“我是div”就不会弹出来了。因为已经被阻止了。其实这句也可也用 return false来替代
19         })
20     </script>
21 </head>
22 <body>
23 <div>
24     <ul>
25        <!-- li在ul里,ul在div中,只要点击了li,也就是点击了ul,也就是点击了div。在上面的函数中,先弹出 “我是li”然后弹出“我是ul”,最后弹出“我是div” 一层一层的冒泡,而阻止冒泡的方式就是调用 事件的对象来调用stopPropagation()方法。这个事件的对象就是函数的参数 e 这个e的名字可以随便取-->
26         <li>请点击我</li>
27     </ul>
28 </div>
29 </body>
30 </html> 

说明:

1.一个事件起泡对应触发的是上层的同一事件
      单击two的时候就会起泡触发one单击的事件。

    单机tree时,会同时触发two,然后触发one

2.如果在click事件中,在你要处理的事件之前加上e.preventDefault();
 那么就取消了行为(通俗理解:相当于做了个return操作),不执行之后的语句了。

3.e.stopPropagation()只要在click事件中,就不会触发上层click事件。

二者区别:return false 不仅阻止了事件往上冒泡,而且阻止了事件本身。event.stopPropagation() 则只阻止事件往上冒泡,不阻止事件本身。

原文:  http://blog.csdn.net/fanbin168/article/details/38303843

时间: 2024-10-07 03:25:38

冒泡事件 阻止冒泡事件的相关文章

阻止事件冒泡,阻止默认事件

阻止事件冒泡 html代码: <table>  <tr>    <td><span>冒泡事件测试</span></td>  </tr></table> js代码: $('table').click(function(){    alert('table');});$('td').click(function(){    alert('td');});$('span').click(function(e){   

jQuery中事件对象e的事件冒泡用法示例(事件冒泡与阻止冒泡)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>事件冒泡与阻止冒泡</title> <script src="js/jquery.min.js" type="text/javascript"></script></head><b

JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生. 一.event.stopPropagation() 阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时候,如果点击一个连接,这个连接仍然会被打开. 二.event.preventDefault() 阻止默认事件的方法,调用此方法时,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 三.return false: 这个方法比较暴力,会同时阻止事件冒泡也会阻止默认事件:写上此代码,连接不会被

jQuery[补1] - 事件冒泡和阻止冒泡

假设网页上有两个元素,其中一个元素嵌套在另一个元素中,并且都被绑定了 click 事件,同时 body 元素上也绑定了 click 事件. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="conten

zepto.js中tap事件阻止冒泡的方法

最近在弄一个手机版的网站,本来想用jQuery Mobile,但文件太大了,所以用了zepto.js 由于移动网页中使用click事件会有延迟,所以就用上了zepto.js中的tap事件. 使用click事件可以使用stopPropagation来阻止冒泡,但tap使用该方法无效 现在我需要实现这样一个效果:点击a.btn这个按钮,然后显示div.panel,当我点击非div.panel时隐藏div.panel $("a.btn").on("tap",functio

阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event.preventDefault()方法 这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 3.return false  : 这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件:写上此代

这可能是最简明扼要的 js事件冒泡机制+阻止默认事件 讲解了

哎 js事件冒泡机制和阻止冒泡 阻止默认行为好像永远也整不清楚,记了忘 忘了记...醉了 这篇文章写完以后下次再忘记 就呼自己一巴掌,忘一次一巴掌 首先要明白两个概念--事件和事件流 事件指的是用户或浏览器自身执行的某种动作,又称为原始事件模型,例如onclick等 事件流指的是 从页面中接收事件的顺序,也就是说当一个事件产生时,这个事件的传播过程就叫做事件流. 事件冒泡: 从事件目标开始 一级级向上冒泡,到document为止--从里到外 IE 5:div--body--document; I

javascript 的事件--阻止冒泡

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>测试</title></head><body>    <input type="button" id="btn1" value="点击">    <

阻止冒泡和阻止默认事件——cancelBubble和stopPropagation

http://stackoverflow.com/questions/7596364/whats-the-difference-between-cancelbubble-and-stoppropagation 结论: cancelBubble是IE8及以下的浏览器阻止冒泡的一个布尔值类型的属性(非方法), stopPropagation()是其他标准浏览器和IE9及以上版本IE浏览器的阻止冒泡的一个方法 cancelBubble非标准,逐渐会被淘汰,所以提倡使用stopPropagation()