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 相关文章推荐
提高网站信任度的技巧
Oct 17 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
jQuery scrollFix滚动定位插件
Apr 01 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
May 08 Javascript
详解Vue微信公众号开发踩坑全记录
Aug 21 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
Sep 10 Javascript
VueJs组件prop验证简单介绍
Sep 12 Javascript
微信小程序顶部可滚动导航效果
Oct 31 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
layui之table checkbox初始化时选中对应选项的方法
Sep 02 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下的权限算法的实现
2007/04/28 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
15 个 JavaScript Web UI 库
2010/05/19 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
安全生产责任书
2014/03/12 职场文书
中式婚礼主持词
2014/03/13 职场文书
供应链金融服务方案
2014/05/25 职场文书
政风行风评议整改方案
2014/09/15 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
办理护照工作证明
2014/10/10 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
实习工作表现评语
2014/12/31 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers