Chinaunix首页 | 论坛 | 博客
  • 博客访问: 462449
  • 博文数量: 226
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2111
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-20 09:02
个人简介

web web web

文章分类

全部博文(226)

文章存档

2020年(2)

2019年(1)

2018年(3)

2017年(26)

2016年(57)

2015年(60)

2014年(77)

我的朋友

分类: Web开发

2014-12-09 10:20:22

冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
  2. <html xmlns="">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>无标题文档</title>
  6. <script src="jquery-1.9.1.min.js"> </script>
  7. <script language="javascript">
  8. $(function(){
  9.     // 为span元素绑定click事件
  10.     $('span').bind("click",function(){
  11.         var txt = $('#msg').html() + "

    内层span元素被点击.

    "

    ;//获取html信息

  12.         $('#msg').html(txt);// 设置html信息
  13.     });
  14.     // 为div元素绑定click事件
  15.     $('#content').bind("click",function(){
  16.         var txt = $('#msg').html() + "

    外层div元素被点击.

    "

    ;

  17.         $('#msg').html(txt);
  18.     });
  19.     // 为body元素绑定click事件
  20.     $("body").bind("click",function(){
  21.         var txt = $('#msg').html() + "

    body元素被点击.

    "

    ;

  22.         $('#msg').html(txt);
  23.     });
  24. })
  25. </script>
  26. </head>
  27. <body>
  28.     <div id="content">
  29.         <div>
  30.             <span>22222</span>
  31.         </div>
  32.     </div>
  33.    <div id="msg"></div>
  34. </body>
  35. </html>
        
    当点击span时,会触发div与body 的点击事件。点击div时会触发body的点击事件。

    如何防止这种冒泡事件发生呢?

    修改如下:

  1. <script type="text/javascript">
  2. $(function(){
  3.        // 为span元素绑定click事件
  4.     $('span').bind("click",function(event){
  5.         var txt = $('#msg').html() + "

    内层span元素被点击.

    "

    ;

  6.         $('#msg').html(txt);
  7.         event.stopPropagation(); // 阻止事件冒泡
  8.     });
  9.     // 为div元素绑定click事件
  10.     $('#content').bind("click",function(event){
  11.         var txt = $('#msg').html() + "

    外层div元素被点击.

    "

    ;

  12.         $('#msg').html(txt);
  13.         event.stopPropagation(); // 阻止事件冒泡
  14.     });
  15.     // 为body元素绑定click事件
  16.     $("body").bind("click",function(){
  17.         var txt = $('#msg').html() + "

    body元素被点击.

    "

    ;

  18.         $('#msg').html(txt);
  19.     });
  20. })
  21. </script>

PS:event.cancelBubble用于ie的阻止冒泡事件,event.stopPropagation()用于firefox和chrome等其他浏览器

阅读(423) | 评论(0) | 转发(0) |
0

上一篇:js事件监听

下一篇:JS延迟加载

给主人留下些什么吧!~~