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 相关文章推荐
再谈ie和firefox下的document.all属性
Oct 21 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
extjs每个组件要设置唯一的ID否则会出错
Jun 15 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
Mar 10 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
Jul 29 Javascript
vue双向绑定及观察者模式详解
Mar 19 Javascript
JQuery的加载和选择器用法简单示例
May 13 jQuery
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
JavaScript流程控制(分支)
Dec 06 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文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
jQuery 表格工具集
2010/04/25 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
javascript中clone对象详解
2014/12/03 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义实例
2016/12/08 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
python利用requests库进行接口测试的方法详解
2018/07/06 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
python实现斗地主分牌洗牌
2020/06/22 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
研修第一天随笔感言
2014/02/15 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
2014年教研室工作总结
2014/12/06 职场文书
外贸英文求职信范文
2015/03/19 职场文书
大学生暑假实习总结
2015/07/13 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python