事件冒泡(的过程):事件从发生的目标(event.srcElement||event.target)开始,沿着文档逐层向上冒泡,到document为止。
事件捕获(的过程):则是从document开始,沿着文档树向下,直到事件目标为止。

关键一句:在IE浏览器中,只发生事件冒泡的过程;在W3C(或支持事件捕获的)浏览器中,先发生捕获的过程,再发生冒泡的过程。

想要添加一个由捕获过程触发的事件,只能这样了:
addEventListener('click',functionname,true);//该方法在IE下报错(对象不支持此属性或方法)

注:将第三个参数设置为true,表明该事件是为捕获过程设置的。如果第三个参数为false,则等同onclick =functionname;

[html] view plaincopy
  1. <script type="text/javascript">
  2. function $(id){
  3. return document.getElementById(id);
  4. }
  5. function altin(){
  6. alert("in");
  7. }
  8. function altmiddle(){
  9. alert("middle");
  10. }
  11. function altout(){
  12. alert("out")
  13. }
  14. window.onload=function() {
  15. $('o').onclick = altout;
  16. //$('m').onclick = altmiddle;
  17. $('m').addEventListener('click',altmiddle,true);
  18. $('i').onclick = altin;
  19. }
  20. </script>
  21. </head>
  22. <body>
  23. <div id="o" style="width:400px;height:400px;border:1px solid #CCCCCC;">
  24. <div id="m" style="width:200px;height:200px;border:1px solid #CCCCCC;">
  25. <div id="i" style="width:100px;height:100px;border:1px solid #CCCCCC;">
  26. </div>
  27. </div>
  28. </div>
  29. </body>
  30. </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之事件冒泡和事件捕获相关推荐

  1. JS 事件冒泡和事件捕获

    原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...

  2. 彻底弄懂JS的事件冒泡和事件捕获

    原文地址为: 彻底弄懂JS的事件冒泡和事件捕获 在学校,听老师讲解事件冒泡和事件捕获机制的时候跟听天书一样,只依稀记得IE使用的是事件冒泡,其他浏览器则是事件捕获.当时的我,把它当成IE浏览器兼容问题 ...

  3. js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获

    js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获 一.总结 一句话总结:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件 ...

  4. JavaScript(js)事件冒泡、事件捕获、事件委托详解

    JavaScript(js)事件冒泡.事件捕获.事件委托详解 1.什么是事件 JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.可以使用监听 ...

  5. [JS] 事件冒泡,阻止事件冒泡,事件的三个阶段(捕获,目标,冒泡)

    事件冒泡 添加三个套在一起的div元素,在最里面放一个button,感受事件触发时从里到外"冒泡"的过程. 给每个div都加一个事件:点击时就alert test.html < ...

  6. JS高级:事件冒泡和事件捕获;

    1.事件:浏览器客户端上客户触发的行为成为时事件:所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发 当用户触发一个事件时,浏览器的所有详细信息都存在一个叫做event的对象上,我们把它叫做 ...

  7. addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...

    这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在htm ...

  8. js事件冒泡和事件委托

    原文:js事件冒泡和事件委托 js事件冒泡 js所谓的事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行 html: <ul class="clearfix&quo ...

  9. 事件冒泡 vs 事件捕获 vs 事件委托 的区别

    事件冒泡 vs 事件捕获 vs 事件委托 本主要用于理解这JS的这三种事件的专业术语所表述的意义: 在学校,听老师讲解事件冒泡和事件捕获机制的时候跟听天书一样,只依稀记得IE使用的是事件冒泡,其他浏览 ...

  10. 简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序

    JavaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序 这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 jav ...

最新文章

  1. PyTorch框架:(1)基本处理操作
  2. Matlab冒号操作符图解
  3. python画玫瑰图_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画
  4. 一家创业公司发展历程-真实记录
  5. Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体
  6. 首次使用mysql_mysql-8.0.20-winx64_初次使用过程(Win7x64)
  7. python 减少可调用对象的参数个数
  8. 为web站点提供https服务的步骤
  9. Tp5获取文件,小文件可以获取,大文件获取失败
  10. IntelliJ IDEA集成Maven
  11. java jsp实验设计心得_jsp课程设计心得_课程设计总结心得
  12. vscode下使用gcc进行Npcap网络编程开发的环境配置
  13. xmapp下mysql的密码更改
  14. 2023秋招大厂经典面试题及答案整理归纳(201-220)校招必看
  15. 英语影视台词---无敌破坏王2大脑互联网
  16. 甲骨文中国良心裁员:首批900人,赔偿N+6
  17. SQLite解决插入大量数据速度慢的问题
  18. html响应式弹性布局,CSS3响应式布局之弹性盒子
  19. 三、Python学习(五)海龟模块turtle使用案列-西瓜切图
  20. org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Mav

热门文章

  1. 汇编 整数变量 浮点数变量 符号常量
  2. 【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
  3. 【Android 逆向】ELF 文件格式 ( ELF 文件当前版本号 | 操作系统 ABI 信息 | ABI 版本 | 文件头校验 | 文件头长度信息 )
  4. 【数据挖掘】关联规则挖掘 Apriori 算法 ( 关联规则 | 数据项支持度 | 关联规则支持度 )
  5. 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
  6. Qt::ConnectionType(信号与槽的传递方式)
  7. win8电源图标显示不出来
  8. hdu 1700 (圆的内接三角形 要周长最大)
  9. 可伸缩搜索框 旋转实现loading
  10. Android---如何返回上一Activity