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 相关文章推荐
jquery 指南/入门基础
Nov 30 Javascript
解决jquery插件冲突的问题
Jan 23 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
Jul 21 Javascript
js实现滚动条滚动到页面底部继续加载
Dec 19 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
浅谈vue异步数据影响页面渲染
Oct 29 Javascript
JS实现简易留言板特效
Dec 23 Javascript
小程序自定义圆形进度条
Nov 17 Javascript
javascript实现固定侧边栏
Feb 09 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
img标签中onerror用法
2009/08/13 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
小程序实现录音功能
2020/09/22 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
python如何实时获取tcpdump输出
2020/09/16 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
华为python面试题
2016/05/03 面试题
倡议书格式模板
2014/05/13 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
2015年商场工作总结
2015/04/27 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
如何做好工作总结!
2019/04/10 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers