当事件的目标是 Winow 对象,或其他独立对象(如 XMLHttpRequest)时,浏览器对于事件的回应就只是在这个对象上调用相应的处理器。当事件的目标是 Document 或 document Element,则情况更复杂一些。
当该目标元素上注册的事件处理器调用后,大多数事件会沿着 DOM 树冒泡。目标的父元素上的事件处理器会调用。然后就是父父元素,一直到 Document 对象,之后就是 Window 对象。事件冒泡为在大量单独文档元素上注册处理程序提供了替代方案,即在共同的祖先元素上注册一个处理程序来处理所有的事件。例如,可以在<form>元素上注册“change”事件处理程序来取代在表单的每个元素上注册“change”事件处理程序。
发生在文档元素上的大多数事件都会冒泡,值得注意的是 focus、blur、scroll 是例外。文档元素上的 load 事件会冒泡,但只冒泡到 Document 对象,不会传播到 Window 对象。只有当整个文档加载完毕才会触发 Window 对象的 load 事件。
事件冒泡是事件传播的第三阶段。目标对象自身调用事件处理器是第二阶段。第一阶段发生在调用目标对象上的事件处理程序之前,叫捕捉阶段。还记得 addEventListener()有一个boolean值作为它的第三个参数,当值为 true 时,该事件处理器是被注册为一个捕捉事件处理器,用于在事件传播的第一阶段调用。事件传播被广泛支持:包括IE在内的所有浏览器都行,并且是所有的处理器都行,不管它们是如何注册的(除非它们是被注册为捕捉事件处理器)。事件捕捉,相反,只对那些用 addEventListener()注册的且第三个参数是true的管用。就这意味着,IE 9 之前的版本不支持事件捕捉,并且,在写这本书的时候,事件捕捉也不是一个常用的技术。
事件传播的捕获阶段像倒过来的冒泡阶段。Window 对象上的捕捉处理器会最先调用,之后是 Document 对象上的捕捉处理器,之后是 body 对象,等等,沿着 DOM 树一直到事件目标的父元素上的捕捉事件处理器被调用。注册在事件目标自身上的捕捉事件处理器不会调用。
事件捕获提供了在事件没有送达目标之前查看它们的机会。事件捕获可以被用于程序调试,或用于事件取消技术,过滤掉事件从而使目标事件处理程序不会被调用。常用的一个情况就是处理鼠标拖放,鼠标动作事件需要被被拖放的对象来处理,not the document elements over which it is dragged。
相关推荐
上面例子的html文件 博文链接:https://zhyt710.iteye.com/blog/227892
基于回调机制的事件传播,Android,移动开发
事件传播分析是社交网络中的一个重要研究内容,而微博又是重要的事件传播媒体
主要介绍了JS传播事件、取消事件默认行为、阻止事件传播,通过事件处理程序的返回值 调用顺序讲解了详细的过程,需要的朋友可以参考下
某内衣公司系列产品新闻事件传播方案.doc
某内衣公司系列产品新闻事件传播方案.docx
互联网环境下公共危机事件传播新转向.pdf
我国微博事件传播中伦理失范与规制-论文.zip
2018国瓷X深外定制事件传播营销方案【教育】【品牌合作】
spring发布和接收定制事件(这个上传必须要填资源分啦),ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传 播功能。通过Application. publishEvent方法,我们可以将事件...
2018国瓷X深外定制事件传播营销方案【教育】【品牌合作】.pptx
鉴于目前在宏观层面对社交网络环境中热点事件传播机制的研究还不多,本文提出了一种传播优化模型,以在短时间内最大化热点事件在网络中的影响。 结合基本蚁群算法的三个特点:分布,自组织和正反馈,建立了基于改进...
v-click-outside Vue指令可对元素外部的单击做出React,而不会停止事件传播。 v-click-outside Vue指令之间的菜单非常适合关闭对话框,可在不停止事件传播的情况下对元素外部的单击做出React。 非常适合用于关闭对话...
1、事件冒泡:在javascript事件传播过程中,当事件在一个元素上出发之后,事件会逐级传播给先辈元素,直到document为止,有的浏览器可能到window为止。并不是所有的事件都有冒泡现象,比如如下几个:blur事件 ,...
针对社会网传播领域的影响最大化问题的研究,将节点本身具备的情感对事件传播的影响力进行了忽略,提出了基于情感的社会网传播模型(Emotion Independent Cascade model,E-IC),关于E-IC模型重点强调了情感影响的...
主要介绍了JavaScript中使用stopPropagation函数停止事件传播例子,即阻止事件冒泡的一个方法,需要的朋友可以参考下
事件传播 ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传 播功能。通过Application. publishEvent方法,我们可以将事件通知系统内所有的 ApplicationListener。 事件...
灰烬修饰符,对元素外部的单击做出React,而不会停止事件传播。 非常适合用于关闭对话,菜单等。 如果您需要对外部点击的更多控制,请查看 受到启发 兼容性 Ember.js v3.12或更高版本 Ember CLI v2.13或更高版本 ...
事件冒泡(dubbed bubbling):与事件捕获恰恰相反,事件冒泡顺序是由内到外进行事件传播,直到根节点。 dom标准事件流的触发的先后顺序为:先捕获再冒泡,即当触发dom事件时,会先进行事件捕获,捕获到事件
三百六十行,行行出状元,但状元也是需要查找和学习爱慕秋冬系列产品新闻事件传播方案的,欢迎大家下载爱...该文档为爱慕秋冬系列产品新闻事件传播方案,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以...