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 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
javascrip关于继承的小例子
May 10 Javascript
angularJS 中$scope方法使用指南
Feb 09 Javascript
原生JS实现垂直手风琴效果
Feb 19 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
js实现简单的日历显示效果函数示例
Nov 25 Javascript
JavaScript闭包原理与用法学习笔记
May 29 Javascript
原生JS实现天气预报
Jun 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
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP静态成员变量
2017/02/14 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
jquery自定义表格样式
2015/11/23 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
Python实现单词拼写检查
2015/04/25 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
Python3最长回文子串算法示例
2019/03/04 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
中餐厅主管的职责范文
2014/02/04 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
爱心捐书倡议书
2015/04/27 职场文书
开票证明
2015/06/23 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js