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 jQuery $.post $.ajax用法
Jul 09 Javascript
今天是星期几的4种JS代码写法
Sep 17 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
Jan 17 Javascript
javascript/jquery获取地址栏url参数的方法
Mar 05 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
May 02 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
浅谈Vue 性能优化之深挖数组
Dec 11 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
PHP高自定义性安全验证码代码
2011/11/27 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
Chrome Web App开发小结
2014/09/04 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
javascript数组去掉重复
2011/05/12 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
python修改操作系统时间的方法
2015/05/18 Python
Python中字符串的格式化方法小结
2016/05/03 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
Python排序函数的使用方法详解
2020/12/11 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
应急管理培训方案
2014/06/12 职场文书
优秀党员先进材料
2014/12/18 职场文书