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 相关文章推荐
javascript replace方法与正则表达式
Feb 19 Javascript
URL地址中的#符号使用说明
Feb 12 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
layui关闭层级、简单监听的实例
Sep 06 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
Vue强制组件重新渲染的方法讨论
Feb 03 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
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
python 中如何获取列表的索引
2019/07/02 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
python 进程池pool使用详解
2020/10/15 Python
python 发送get请求接口详解
2020/11/17 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
化工机械应届生求职信
2013/11/04 职场文书
50岁生日感言
2014/01/23 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python