javascript事件的传播基础实例讲解(35)


Posted in Javascript onFebruary 14, 2017

本文实例为大家分享了js事件的传播,供大家参考,具体内容如下

<html> 
 <head> 
  <meta charset="UTF-8"> 
  <title></title> 
  <style type="text/css"> 
   #box1{ 
    width: 300px; 
    height: 300px; 
    background-color: deepskyblue; 
   } 
    
   #box2{ 
    width: 200px; 
    height: 200px; 
    background-color: cadetblue; 
   } 
    
   #box3{ 
    width: 100px; 
    height: 100px; 
    background-color: chocolate; 
   } 
    
  </style> 
   
  <script type="text/javascript"> 
   
   function bind(obj , eventStr , callback){ 
     
    if(obj.addEventListener){ 
     //如果是正常浏览器 
     obj.addEventListener(eventStr , callback , false); 
    }else{ 
     //IE8 
     obj.attachEvent("on"+eventStr , function(){ 
      callback.call(obj); 
     }); 
    } 
   } 
    
   window.onload = function(){ 
     
    /* 
     * 事件的传播 
     * - 关于事件的传播微软和网景公司有着不同的理解 
     * - 微软公司,认为事件应该是从后代元素向祖先元素传播,即从里向外传播,也就是我们所谓事件的冒泡 
     * - 网景公司,认为事件应该是从祖先元素向后代元素传播,即从外向里传播,这一阶段我们称为事件的捕获 
     * - W3C综合了两个公司的方案,将事件的传播分成了三个阶段 
     *  1.捕获阶段 
     *   - 事件从最外层的元素(document),向目标元素进行事件的捕获 
     *   - 此阶段默认不会触发事件 
     *  2.目标阶段 
     *   - 目标指的是触发事件的元素,捕获到目标元素则捕获阶段停止 
     *  3.冒泡阶段 
     *   - 事件从目标元素向祖先元素中冒泡,此时开始触发事件 
     *   - 默认事件都是在冒泡阶段执行的 
     * 
     * - 事件都是默认在冒泡阶段执行的,一般不需要在捕获阶段触发事件, 
     *  如果希望在捕获阶段执行事件,则需要将addEventListener()的第三个参数修改为true 
     * 
     * - IE8及以下的浏览器没有捕获阶段,也不能设置在捕获阶段触发事件 
     */ 
     
    //分别为三个div绑定单击响应函数 
    var box1 = document.getElementById("box1"); 
    var box2 = document.getElementById("box2"); 
    var box3 = document.getElementById("box3"); 
     
    bind(box1,"click",function(){ 
     alert(1); 
    }) 
     
    bind(box2,"click",function(){ 
     alert(2); 
    }) 
     
    bind(box3,"click",function(){ 
     alert(3); 
    }) 
     
   }; 
    
    
  </script> 
 </head> 
 <body> 
   
  <div id="box1"> 
   <div id="box2"> 
    <div id="box3"></div> 
   </div> 
  </div> 
   
 </body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS拖动技术 关于setCapture使用
Dec 09 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
js中跨域方法原理详解
Jul 19 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
vue component组件使用方法详解
Jul 14 Javascript
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
layUI实现列表查询功能
Jul 27 Javascript
JavaScript实现答题评分功能页面
Jun 24 Javascript
一文彻底理解js原生语法prototype,__proto__和constructor
Oct 24 Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 #Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
Feb 14 #Javascript
js基于myFocus实现轮播图效果
Feb 14 #Javascript
javascript 单例模式详解及简单实例
Feb 14 #Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 #Javascript
微信小程序 弹幕功能简单实例
Feb 14 #Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
Feb 14 #Javascript
You might like
图书管理程序(二)
2006/10/09 PHP
NOT NULL 和NULL
2007/01/15 PHP
php时间不正确的解决方法
2008/04/09 PHP
如何判断php数组的维度
2013/06/10 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
介绍Python的Django框架中的QuerySets
2015/04/20 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python实现画图软件功能方法详解
2020/07/28 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
在C#中如何实现多态
2014/07/02 面试题
斯福泰克软件测试面试题
2015/02/16 面试题
车间调度岗位职责
2013/11/30 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
php引用传递
2021/04/01 PHP
浅谈Python numpy创建空数组的问题
2021/05/25 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python