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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
javascript数字数组去重复项的实现代码
Dec 30 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
js中的内部属性与delete操作符介绍
Aug 10 Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
Vue实现选择城市功能
May 27 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
Vuex的实战使用详解
Oct 31 Javascript
vue动态渲染svg、添加点击事件的实现
Mar 13 Javascript
JS实现点星星消除小游戏
Mar 24 Javascript
uniapp与webview之间的相互传值的实现
Jun 29 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
php getsiteurl()函数
2009/09/05 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
vue实现图片预览组件封装与使用
2019/07/13 Javascript
Python创建xml文件示例
2017/03/22 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
python获取Pandas列名的几种方法
2019/08/07 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
python文件及目录操作代码汇总
2020/07/08 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
大学生毕业求职自荐书范文
2014/02/04 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python