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 相关文章推荐
javascript显示选择目录对话框的代码
Nov 10 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
Nov 17 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
Jan 26 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
微信小程序中form 表单提交和取值实例详解
Apr 20 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
JavaScript表单验证实现代码
May 22 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 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图片加中文水印实现代码分享
2012/10/31 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
php实现上传图片生成缩略图示例
2014/04/13 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python 除法小技巧
2008/09/06 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python 创建守护进程的示例
2020/09/29 Python
html5实现滑块功能之type=&quot;range&quot;属性
2020/02/18 HTML / CSS
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
法律进企业活动方案
2014/03/04 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
如何写新闻稿
2015/07/18 职场文书
nginx 配置指令之location使用详解
2022/05/25 Servers