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:以前写的xmlhttp池,代码
May 18 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
Mar 19 Javascript
判断浏览器的内核及版本号方法汇总
Jan 05 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
Aug 26 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
WEEX环境搭建与入门详解
Oct 16 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
几个学习PHP的网址
2006/11/25 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
php记录日志的实现代码
2011/08/08 PHP
PHP异步调用socket实现代码
2012/01/12 PHP
session 加入redis的实现代码
2016/07/15 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
详解vuex的简单使用
2018/03/12 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Python实现模拟时钟代码推荐
2015/11/08 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
OpenCV 模板匹配
2019/07/10 Python
python找出因数与质因数的方法
2019/07/25 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Python collections模块使用方法详解
2019/08/28 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
python内置模块collections知识点总结
2019/12/19 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
理工类毕业自我鉴定
2014/02/20 职场文书
基于Python实现股票收益率分析
2022/04/02 Python