js中的事件捕捉模型与冒泡模型实例分析


Posted in Javascript onJanuary 10, 2015

本文实例讲述了js中的事件捕捉模型与冒泡模型。分享给大家供大家参考。

具体实现方法如下:

实例1:

<html>

<head>

<script type="text/javascript">

 window.onload = function(){

  document.getElementById('par').addEventListener('click',function() {alert('par');},true);

  document.getElementById('son').addEventListener('click',function() {alert('son');},true);

 }

</script>

<style type="text/css">

#par{width:300px;height:200px;background:gray;}

#son{width:200px;height:100px;background:green;}

</style>

</head>

<body>

<div id="par">

 <div id="son"></div>

</div>

</body>

</html>

实例2:
<html>

<head>

<script type="text/javascript">

 window.onload = function(){

  document.getElementById('par').addEventListener('click',function() {alert('par');});

  document.getElementById('son').addEventListener('click',function() {alert('son');});

 }

</script>

<style type="text/css">

#par{width:300px;height:200px;background:gray;}

#son{width:200px;height:100px;background:green;}

</style>

</head>

<body>

<div id="par">

 <div id="son"></div>

</div>

</body>

</html>

addEventListener:第三个参数为可选参数,默认情况下为false,表示冒泡模型,即先触发最小的层(id为son的div);而如果加上true参数,则说明是捕捉模型(从html-->body--->div),按这样的层次来触发。

实例1的html代码有两个div,小的div包含在大的div内,点击小的div时,先是会触发alert('par')事件;然后触发alert('son')整件。实例2正好相反。

如果是采用"对象.onclick"属性的方式来触发事件,采用的是冒泡模型。

IE不支持addEventListener,而是使用attachEvent。但attachEvent不支持第三个参数,它没有捕捉模型。

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
基于jsTree的无限级树JSON数据的转换代码
Jul 27 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
Apr 26 Javascript
php,js,css字符串截取的办法集锦
Sep 26 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
Jun 15 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
跟我学习javascript的call(),apply(),bind()与回调
Nov 16 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
vue 优化CDN加速的方法示例
Sep 19 Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 Javascript
js中键盘事件实例简析
Jan 10 #Javascript
js中this的用法实例分析
Jan 10 #Javascript
js创建对象的方式总结
Jan 10 #Javascript
js对象继承之原型链继承实例
Jan 10 #Javascript
js对象的复制继承实例
Jan 10 #Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 #Javascript
js获取会话框prompt的返回值的方法
Jan 10 #Javascript
You might like
开源SNS系统-ThinkSNS
2008/05/18 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
php导入导出excel实例
2013/10/25 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
php查询内存信息操作示例
2019/05/09 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
Javascript 二维数组
2009/11/26 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
Javascript学习指南
2014/12/01 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue之延时刷新实例
2019/11/14 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
New delete 与malloc free 的联系与区别
2013/02/04 面试题
考试作弊被抓检讨书
2014/01/10 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
关键在于落实心得体会
2014/09/03 职场文书
2014年个人年终总结
2015/03/09 职场文书
2016年教代会开幕词
2016/03/04 职场文书