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 相关文章推荐
从零开始学习jQuery (三) 管理jQuery包装集
Feb 23 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
js单词形式的运算符
May 06 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
异步安全加载javascript文件的方法
Jul 21 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
Aug 31 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
Node.js+Express配置入门教程
May 19 Javascript
PHP+jquery+ajax实现分页
Dec 09 Javascript
JS按钮闪烁功能的实现代码
Jul 21 Javascript
浅谈Angular单元测试总结
Mar 22 Javascript
详解Vue中的watch和computed
Nov 09 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
用Flash图形化数据(二)
2006/10/09 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python2.7的编码问题与解决方法
2016/10/04 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
美国在线宠物商店:Chewy
2019/01/12 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
MySQL面试题目集锦
2016/04/14 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
揭牌仪式主持词
2014/03/19 职场文书
学生请假条格式
2014/04/11 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python