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 相关文章推荐
javaScript对象和属性的创建方法
Jan 15 Javascript
javascript日期格式化示例分享
Mar 05 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
JavaScript判断用户是否对表单进行了修改的方法
Mar 18 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
JS实现滑动插件
Jan 15 Javascript
js实现自定义右键菜单
May 18 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
Aug 04 Javascript
vue mvvm数据响应实现
Nov 11 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
再次研究下cache_lite
2007/02/14 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
Python常用的日期时间处理方法示例
2015/02/08 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
先进班级集体事迹材料
2014/01/30 职场文书
《桥》教学反思
2014/04/09 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
小学生作文评语集锦
2014/12/25 职场文书
小学感恩节活动总结
2015/03/24 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js