事件传播

允许多个元素   响应单击事件的

一种策略叫做 事件捕获(在事件捕获的过程中,事件首先会交给最外层的元素,接着再交给更具体的元素。)

另一种策略叫做 事件冒泡(即当事件发生时,会首先发送给最具体的元素,在这个元素获得响应机会之后,事件会向上冒泡到更一般的元素。

出台的 DOM 标准规定应该同时使用这两种策略:首先,事件要从一般元素到具体元素逐层捕获,然后,事件再通过冒泡返回 DOM 树的顶层。

而事件处理程序可以注册到这个过程中任何一个阶段。

为了确保跨浏览器的一致性,jQuery 始终会在模型的冒泡阶段注册事件处理程序。因此,我们总是可以假定最具体的元素会首先获得响应事件的机会。

为了在处理程序中使用事件对象,需要为函数添加一个参数:

$(document).ready(function() {

$(‘#switcher‘).click(function(event){

$(‘#switcher button‘).toggleClass(‘hidden‘);

});

});

时间: 2024-11-06 01:02:59

事件传播的相关文章

JavaScript中的事件冒泡?事件传播的解释

注:本文来源  可译网 事件冒泡是你在学习javaScript旅途中遇到的一个术语,它涉及到当一个元素被另一个元素嵌套时调用事件处理的顺序,并且两个元素注册了同一个事件(例如,点击事件). 但是事件冒泡仅仅是难题的一部分.它经常和事件捕获和事件传播一起被提及,并且对这三个概念有着很深的了解是学习javaScript事件必不可少的,例如,假如你想实现事件委托. 在这篇文章中,我会解释这些术语,并展示它们如何组合在一起.我还将向您展示如何对JavaScript事件流的基本了解可以让您对应用程序进行细

javascript 事件传播与事件冒泡,W3C事件模型

说实话笔者在才工作的时候就听说了什么"事件冒泡",弄了很久才弄个大概,当时理解意思是子级dom元素和父级dom元素都绑定了相同类型的事件,这时如果子级事件触发了父级也会触发,然后这就叫做"事件冒泡".然而,事情要是这么简单的话,相信笔者这时一定已经迎娶了白富美,当上了CEO.坏就坏在后来又听说一个"事件传播" ,尼玛不是"事件冒泡"吗,然后又听说了"W3C事件模型"...到了最后笔者彻底心碎了,只能乖乖的当

jQuery事件传播,事件流

一. jQuery事件传播 在DOM2级事件模型中,一旦事件被触发.事件流首先从DOM树顶部(文档节点)向下传播.直到目标节点.然后再从目标节点向上传播到DOM树顶.从上到下的过程被称为捕获阶段.从下到上的过程被称为冒泡阶段. 利用循环体结构分别为button元素及其全部父级节点注冊一个捕获型鼠标单击类事件处理函数. 代码演示样例: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q

[JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播

-->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的onclick事件也会被触发.js里称这种事件连续发生的机制为事件冒泡或者事件捕获.IE浏览器:事件从里向外发生,事件从最精确对象(target)开始触发,然后到最不精确的对象(document)触发,即事件冒泡 Netscape:事件从外向里发生,事件从最不精确的对象(document)开始触发,然后到最精确对象(

spring发布和接收定制的事件(spring事件传播)

版权声明:本文为博主原创文章,未经博主允许不得转载. 有事件,即有事件监听器. 有人问你spring监听器有哪些你看了下文即也知道了. 事件传播 ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传 播功能.通过Application. publishEvent方法,我们可以将事件通知系统内所有的 ApplicationListener. 事件传播的一个典型应用是,当Bean中的操作发生异常(如数据库连接失败),则通过事件传

Javascript事件传播(冒泡机制) (摘自 博客园 萍水相逢)

今天在使用javascript弹出菜单时遇到了问题,搞了一晌终于算有点眉目了.和大家一起分享下.有什么不对的地方希望大家多多留言评论. 定义:JavaSciprt事件中有两个很重要的特性:事件冒泡 以及目标元素 . 事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层. 目标元素: 任何一个事件的目标元素都是最开始的那个元素,并且它在我们的元素对象中以属性的形

JQuery事件传播

jquery中一些事件函数使用小结,需要的朋友可以参考下. 1.$(document).ready() $(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典型方式.它和onload具有类似的效果.但是也有一些差异: 当一个文档完全下载到浏览器中时,会触发window.onload事件.而使用$(document).ready()注册的事件处理程序会在html下载完成并解析为Dom树之后,代码就可以运行,但并不意味着所有关联文件都已

JS-阻断事件传播:stopPropagation,preventDefault以及stopImmediatePropagation

最近遇到一个需求,在一定情况下,需要阻断blur的事件传播.搜索之后找到三个函数,第一个是preventDefault,第二个是stopPropagation,第三个是stopImmediatePropagation . preventDefault: 语法是: event.stopPropagation(); 这个函数的作用是阻止事件进一步冒泡,进而被其他节点接收. preventDefault: 语法是: event.preventDefault(); 这个函数与前者不同在于他阻止的是事件默

js事件传播的一个疑惑

在学习事件传播的时候,发现一个问题,当时是这样子的. 我给多层元素分别绑定了冒泡和捕获事件.按道理应该先从外向内执行完所有的捕获事件,再由内向外执行所有的冒泡事件. 但是天不随人愿啊,有个元素偏偏先执行了冒泡事件,后执行了捕获事件. 我怎么查资料也没弄明白,当时就放下了.今天突然发现自己这个不按规矩的元素正好是我所有bom元素的最里层的元素. 我就想啊,可能是到最里面浏览器就不去区分它绑定的事件是否是捕获还是冒泡了吧. 于是乎我就证明了一下: 第一:我先把最内层元素的捕获事件和冒泡事件换了注册顺

spring发布和接收定制的事件(spring事件传播)[转]

有事件,即有事件监听器. 有人问你spring监听器有哪些你看了下文即也知道了. 事件传播 ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传 播功能.通过Application. publishEvent方法,我们可以将事件通知系统内所有的 ApplicationListener. 事件传播的一个典型应用是,当Bean中的操作发生异常(如数据库连接失败),则通过事件传播 机制通知异常监听器进行处理.在笔者的一个项目中,就