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 相关文章推荐
新手入门常用代码集锦
Jan 11 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
Jan 31 Javascript
实用框架(iframe)操作代码
Oct 23 Javascript
深入学习JavaScript中的Rest参数和参数默认值
Jul 28 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
Dec 18 Javascript
Vue2组件tree实现无限级树形菜单
Mar 29 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 Javascript
vue render函数动态加载img的src路径操作
Oct 26 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修改session_id示例代码
2014/01/08 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
iview实现图片上传功能
2020/06/29 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
python机器学习之神经网络(二)
2017/12/20 Python
python 输出所有大小写字母的方法
2019/01/02 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
关于Keras Dense层整理
2020/05/21 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
解决方案设计综合面试题
2015/08/31 面试题
高考励志标语
2014/06/05 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2014年工人工作总结
2014/11/25 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
干部培训工作总结2015
2015/05/25 职场文书
房产电话营销开场白
2015/05/29 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
Python+Appium自动化测试的实战
2021/06/30 Python
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server
python中对列表的删除和添加方法详解
2022/02/24 Python
Python实现科学占卜 让视频自动打码
2022/04/09 Python