javascript事件冒泡简单示例


Posted in Javascript onJune 20, 2016

本文实例讲述了javascript事件冒泡的定义与用法。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta name="developer" content="Realazy" />
  <title>Bubble in JavaScript DOM</title>
  <style type="text/css" media="screen">
   div * {
    display: block;
    margin: 4px;
    padding: 4px;
    border: 1px solid white;
   }
   textarea {
    width: 20em;
    height: 2em;
   }
  </style>
  <script type="text/javascript">
   //<![CDATA[
   function init(){
    var log = document.getElementsByTagName('textarea')[0];
    var all = document.getElementsByTagName('div')[0].getElementsByTagName('*');
    for (var i = 0, n = all.length; i < n; ++i) {
     all[i].onmouseover = function(e){
      this.style.border = '1px solid red';
      log.value = '鼠标现在进入的是: ' + this.nodeName;
     };
     all[i].onmouseout = function(e){
      this.style.border = '1px solid white';
     };
    }
    var all2 = document.getElementsByTagName('div')[1].getElementsByTagName('*');
    for (var i = 0, n = all2.length; i < n; ++i) {
     all2[i].onmouseover = function(e){
      this.style.border = '1px solid red';
      if (e) //停止事件冒泡
       e.stopPropagation();
      else 
       window.event.cancelBubble = true;
      log.value = '鼠标现在进入的是: ' + this.nodeName;
     };
     all2[i].onmouseout = function(e){
      this.style.border = '1px solid white';
     };
    }
   }
   window.onload = init;
   //]]>
  </script>
 </head>
 <body>
  <h1>Bubble in JavaScript DOM</h1>
  <p>
   DOM树的结构是:
  </p>
  <pre><code>
UL
 - LI
  - A
 - SPAN
</code></pre>
  <div>
   <ul>
    <li>
     <a href="https://3water.com/#"><span>Bubbllllllllllllllle</span></a>
    </li>
    <li>
     <a href="https://3water.com/#"><span>Bubbllllllllllllllle</span></a>
    </li>
   </ul>
  </div>
  <textarea>
  </textarea>
  <p>
   鼠标进入UL的任何一个子元素,如果不停止冒泡,我们从UL到SPAN都定义了鼠标悬停(
   <code>
    mouseover
   </code>)事件,这个事件会上升了UL,从而从鼠标所进入的元素到UL元素都会有红色的边。
  </p>
  <div>
   <ul>
    <li>
     <a href="https://3water.com/#"><span>Bubbllllllllllllllle</span></a>
    </li>
    <li>
     <a href="https://3water.com/#"><span>Bubbllllllllllllllle</span></a>
    </li>
   </ul>
  </div>
  <p>
   如果停止冒泡,事件不会上升,我们就可以获取精确的鼠标进入元素。
  </p>
 </body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
javascript操作cookie
Jan 17 Javascript
JS触摸与手势事件详解
May 09 Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
jQuery 动态粒子效果示例代码
Jul 07 jQuery
基于原生js实现判断元素是否有指定class名
Jul 11 Javascript
详解javascript void(0)
Jul 13 Javascript
vue实现移动端H5数字键盘组件使用详解
Aug 25 Javascript
JS实现的打字机效果完整实例
Jun 20 #Javascript
jQuery实现的网格线绘制方法
Jun 20 #Javascript
jQuery实现右下角可缩放大小的层完整实例
Jun 20 #Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 #Javascript
Javascript中的arguments对象
Jun 20 #Javascript
JavaScript中获取HTML元素值的三种方法
Jun 20 #Javascript
BootStrap selectpicker
Jun 20 #Javascript
You might like
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
让PHP支持页面回退的两种方法
2008/01/10 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
PHP实现递归无限级分类
2015/10/22 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
python mysql中in参数化说明
2020/06/05 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
css3高级选择器使用方法
2013/12/02 HTML / CSS
波兰在线运动商店:YesSport
2020/07/23 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
初中差生评语
2014/12/29 职场文书
医学生自荐信范文
2015/03/05 职场文书
申请吧主发表的感言
2015/08/03 职场文书
python中的3种定义类方法
2021/11/27 Python
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL