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中的函数
Jan 22 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
Mar 04 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
vue-cli webpack 开发环境跨域详解
May 18 Javascript
Angularjs中数据绑定的实例详解
Aug 25 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
总结js中的一些兼容性易错的问题
Dec 18 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
js实现简单的随机点名器
Sep 17 Javascript
JavaScript实现简单计时器
Jun 22 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 5.5 新特性
2013/07/02 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
python3如何将docx转换成pdf文件
2018/03/23 Python
python django model联合主键的例子
2019/08/06 Python
Python函数中的可变长参数详解
2019/09/12 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
灰雀教学反思
2014/04/28 职场文书
诉前财产保全担保书
2014/05/20 职场文书
抗震救灾标语
2014/06/26 职场文书
赔偿协议书
2015/01/27 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
Django操作cookie的实现
2021/05/26 Python
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
mysql中关键词exists的用法实例详解
2022/06/10 MySQL