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 相关文章推荐
js压缩利器
Feb 20 Javascript
JavaScript中获取元素索引的函数
Sep 10 Javascript
js 设置缓存及获取设置的缓存
May 08 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
jQuery Ajax实现跨域请求
Jan 21 Javascript
axios学习教程全攻略
Mar 26 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
Dec 10 Javascript
vue下载excel的实现代码后台用post方法
May 10 Javascript
用Vue.js在浏览器中实现裁剪图像功能
Jun 18 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脚本
2006/11/26 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
向左滚动文字 js代码效果
2013/08/17 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python File(文件) 方法整理
2019/02/18 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
浅析NumPy 切片和索引
2020/09/02 Python
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
少先队学雷锋活动月总结
2014/03/09 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
会计系毕业求职信
2014/08/07 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
行政答辩状范文
2015/05/21 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书