js之事件冒泡和事件捕获
事件冒泡(的过程):事件从发生的目标(event.srcElement||event.target)开始,沿着文档逐层向上冒泡,到document为止。
事件捕获(的过程):则是从document开始,沿着文档树向下,直到事件目标为止。
关键一句:在IE浏览器中,只发生事件冒泡的过程;在W3C(或支持事件捕获的)浏览器中,先发生捕获的过程,再发生冒泡的过程。
想要添加一个由捕获过程触发的事件,只能这样了:
addEventListener('click',functionname,true);//该方法在IE下报错(对象不支持此属性或方法)
注:将第三个参数设置为true,表明该事件是为捕获过程设置的。如果第三个参数为false,则等同onclick =functionname;
- <script type="text/javascript">
- function $(id){
- return document.getElementById(id);
- }
- function altin(){
- alert("in");
- }
- function altmiddle(){
- alert("middle");
- }
- function altout(){
- alert("out")
- }
- window.onload=function() {
- $('o').onclick = altout;
- //$('m').onclick = altmiddle;
- $('m').addEventListener('click',altmiddle,true);
- $('i').onclick = altin;
- }
- </script>
- </head>
- <body>
- <div id="o" style="width:400px;height:400px;border:1px solid #CCCCCC;">
- <div id="m" style="width:200px;height:200px;border:1px solid #CCCCCC;">
- <div id="i" style="width:100px;height:100px;border:1px solid #CCCCCC;">
- </div>
- </div>
- </div>
- </body>
- </html>
以上代码执行效果如下:
1、$('m').onclick = altmiddle;
a)当点击#i时,显示顺序为in,middle,out
b)当点击#m时,显示顺序为middle,out
c)当点击#o时,显示顺序为out
2、$('m').addEventListener('click',altmiddle,true);
a)当点击#i时,显示顺序为middle,in,out
b)当点击#m时,显示顺序为middle,out
c)当点击#o时,显示顺序为out
3、$('m').addEventListener('click',altmiddle,false);
a)当点击#i时,显示顺序为in,middle,out
b)当点击#m时,显示顺序为middle,out
c)当点击#o时,显示顺序为out
把事件捕获和冒泡的过程统称为事件的传播
事件的传播是可以阻止的:
• 在W3C中,使用stopPropagation()方法
• 在IE下设置cancelBubble = true;
在捕获的过程中stopPropagation()后,后面的冒泡过程也不会发生了~
阻止事件的默认行为,例如click <a>后的跳转~
• 在W3C中,使用preventDefault()方法;
• 在IE下设置window.event.returnValue = false;
注: 不是所有的事件都能冒泡,例如:blur、focus、load、unload,(这个是从别人的文章里摘过来的,我没测试)。
js之事件冒泡和事件捕获相关推荐
- JS 事件冒泡和事件捕获
原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...
- 彻底弄懂JS的事件冒泡和事件捕获
原文地址为: 彻底弄懂JS的事件冒泡和事件捕获 在学校,听老师讲解事件冒泡和事件捕获机制的时候跟听天书一样,只依稀记得IE使用的是事件冒泡,其他浏览器则是事件捕获.当时的我,把它当成IE浏览器兼容问题 ...
- js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获
js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获 一.总结 一句话总结:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件 ...
- JavaScript(js)事件冒泡、事件捕获、事件委托详解
JavaScript(js)事件冒泡.事件捕获.事件委托详解 1.什么是事件 JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.可以使用监听 ...
- [JS] 事件冒泡,阻止事件冒泡,事件的三个阶段(捕获,目标,冒泡)
事件冒泡 添加三个套在一起的div元素,在最里面放一个button,感受事件触发时从里到外"冒泡"的过程. 给每个div都加一个事件:点击时就alert test.html < ...
- JS高级:事件冒泡和事件捕获;
1.事件:浏览器客户端上客户触发的行为成为时事件:所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发 当用户触发一个事件时,浏览器的所有详细信息都存在一个叫做event的对象上,我们把它叫做 ...
- addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...
这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在htm ...
- js事件冒泡和事件委托
原文:js事件冒泡和事件委托 js事件冒泡 js所谓的事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行 html: <ul class="clearfix&quo ...
- 事件冒泡 vs 事件捕获 vs 事件委托 的区别
事件冒泡 vs 事件捕获 vs 事件委托 本主要用于理解这JS的这三种事件的专业术语所表述的意义: 在学校,听老师讲解事件冒泡和事件捕获机制的时候跟听天书一样,只依稀记得IE使用的是事件冒泡,其他浏览 ...
- 简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序
JavaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序 这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 jav ...
最新文章
- PyTorch框架:(1)基本处理操作
- Matlab冒号操作符图解
- python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画
- 一家创业公司发展历程-真实记录
- Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体
- 首次使用mysql_mysql-8.0.20-winx64_初次使用过程(Win7x64)
- python 减少可调用对象的参数个数
- 为web站点提供https服务的步骤
- Tp5获取文件,小文件可以获取,大文件获取失败
- IntelliJ IDEA集成Maven
- java jsp实验设计心得_jsp课程设计心得_课程设计总结心得
- vscode下使用gcc进行Npcap网络编程开发的环境配置
- xmapp下mysql的密码更改
- 2023秋招大厂经典面试题及答案整理归纳(201-220)校招必看
- 英语影视台词---无敌破坏王2大脑互联网
- 甲骨文中国良心裁员:首批900人,赔偿N+6
- SQLite解决插入大量数据速度慢的问题
- html响应式弹性布局,CSS3响应式布局之弹性盒子
- 三、Python学习(五)海龟模块turtle使用案列-西瓜切图
- org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Mav
热门文章
- 汇编 整数变量 浮点数变量 符号常量
- 【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
- 【Android 逆向】ELF 文件格式 ( ELF 文件当前版本号 | 操作系统 ABI 信息 | ABI 版本 | 文件头校验 | 文件头长度信息 )
- 【数据挖掘】关联规则挖掘 Apriori 算法 ( 关联规则 | 数据项支持度 | 关联规则支持度 )
- 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
- Qt::ConnectionType(信号与槽的传递方式)
- win8电源图标显示不出来
- hdu 1700 (圆的内接三角形 要周长最大)
- 可伸缩搜索框 旋转实现loading
- Android---如何返回上一Activity