Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Event对象

Event对象

作者头像
WindRunnerMax
发布于 2021-02-25 08:15:45
发布于 2021-02-25 08:15:45
67100
代码可运行
举报
文章被收录于专栏:Czy‘s BlogCzy‘s Blog
运行总次数:0
代码可运行

Event对象

Event对象表示在DOM中出现的事件,在DOM中有许多不同类型的事件,其主要使用基于Event对象作为主接口的二次接口,Event对象本身包含适用于所有事件的属性和方法。

描述

事件有很多类型,一些事件是由用户触发的,例如鼠标或键盘事件,而其他事件常由API生成,例如指示动画已经完成运行的事件,视频已被暂停等等,事件也可以通过脚本代码触发,例如对元素调用HTMLElement.click()方法,或者定义一些自定义事件,再使用EventTarget.dispatchEvent()方法将自定义事件派发往指定的目标target。 一个元素可以绑定多个事件处理函数,甚至是同一种类型的事件,尤其是这种分离的,并且相互独立的代码模块对同一个元素绑定事件处理函数,每一个模块代码都有着独立的目的。通过EventTarget.addEventListener()方法可以将事件处理函数绑定到不同的HTML elements上。这种绑定事件处理函数的方式基本替换了老版本中使用HTML event handler attributesDOM0级事件来绑定事件处理函数的方式,除此之外通过使用removeEventListener()方法,这些事件处理函数也能被移除。 当有很多嵌套的元素,并且每一个元素都有着自己的事件处理函数,事件处理过程会变得非常复杂,尤其当一个父元素和子元素绑定有相同类型的事件处理函数的时候,因为结构上的重叠,事件处理函数可能会依次被触发,触发的顺序取决于事件冒泡和事件捕获在每一个元素上的设置情况。 下面是主要基于Event接口的接口列表,需要注意的是,所有的事件接口名称都是以Event结尾的。

  • AnimationEvent
  • AudioProcessingEvent
  • BeforeInputEvent
  • BeforeUnloadEvent
  • BlobEvent
  • ClipboardEvent
  • CloseEvent
  • CompositionEvent
  • CSSFontFaceLoadEvent
  • CustomEvent
  • DeviceLightEvent
  • DeviceMotionEvent
  • DeviceOrientationEvent
  • DeviceProximityEvent
  • DOMTransactionEvent
  • DragEvent
  • EditingBeforeInputEvent
  • ErrorEvent
  • FetchEvent
  • FocusEvent
  • GamepadEvent
  • HashChangeEvent
  • IDBVersionChangeEvent
  • InputEvent
  • KeyboardEvent
  • MediaStreamEvent
  • MessageEvent
  • MouseEvent
  • MutationEvent
  • OfflineAudioCompletionEvent
  • OverconstrainedError
  • PageTransitionEvent
  • PaymentRequestUpdateEvent
  • PointerEvent
  • PopStateEvent
  • ProgressEvent
  • RelatedEvent
  • RTCDataChannelEvent
  • RTCIdentityErrorEvent
  • RTCIdentityEvent
  • RTCPeerConnectionIceEvent
  • SensorEvent
  • StorageEvent
  • SVGEvent
  • SVGZoomEvent
  • TimeEvent
  • TouchEvent
  • TrackEvent
  • TransitionEvent
  • UIEvent
  • UserProximityEvent
  • WebGLContextEvent
  • WheelEvent

属性

  • Event.prototype.bubbles: 只读,返回一个布尔值,用来表示该事件是否会在DOM中冒泡。
  • Event.prototype.cancelBubble: Event.prototype.stopPropagation()的历史别名,在事件处理器函数返回之前,将此属性的值设置为true,亦可阻止事件继续冒泡。
  • Event.prototype.cancelable: 只读,返回一个布尔值,表示事件是否可以取消。
  • Event.prototype.composed: 只读,返回一个布尔值,表示事件是否可以穿过Shadow DOM和常规DOM之间的隔阂进行冒泡。
  • Event.prototype.currentTarget: 只读,对事件当前注册的目标的引用。这是一个当前计划将事件发送到的对象,它是有可能在重定向的过程中被改变的。
  • Event.prototype.deepPath: 一个由事件流所经过的DOM节点组成的数组。
  • Event.prototype.defaultPrevented: 只读,返回一个布尔值,表示event.preventDefault()方法是否取消了事件的默认行为。
  • Event.prototype.eventPhase: 只读,表示事件流正被处理到了哪个阶段。
  • Event.prototype.explicitOriginalTarget: 只读,事件的明确explicit原始目标,Mozilla专有属性。
  • Event.prototype.originalTarget: 只读,重设目标前的事件原始目标,Mozilla专有属性。
  • Event.prototype.returnValue: 旧版Internet Explorer引入的一个非标准历史属性,为保证依赖此属性的网页正常运作,此属性最终被收入规范,可用Event.prototype.preventDefault()event.defaultPrevented代替,但由于已进入规范,也可以使用此属性。
  • Event.prototype.srcElement: 旧版Internet Explorerevent.target的非标准别称,出于兼容原因,一些其他浏览器也支持此别称。
  • Event.prototype.target: 只读,对事件原始目标的引用,这里的原始目标指最初派发dispatch事件时指定的目标。
  • Event.prototype.timeStamp: 只读,事件创建时的时间戳,精度为毫秒,按照规范这个时间戳是Unix纪元起经过的毫秒数,但实际上在不同的浏览器中,对此时间戳的定义也有所不同,另外规范正在将其修改为DOMHighResTimeStamp
  • Event.prototype.type: 只读,返回事件的类型,不区分大小写。
  • Event.prototype.isTrusted: 只读,表示事件是由浏览器(例如用户点击)发起的,还是由脚本(使用事件创建方法例如event.initEvent发出的。

方法

  • document.captureEvents(): 创建一个新事件,如果使用此方法创建事件,则必须调用其自身的initEvent()方法,对其进行初始化。
  • Event.prototype.composedPath(): 返回事件的路径(将在该对象上调用监听器),如果阴影根节点shadow root创建时ShadowRoot.mode值为closed,那么路径不会包括该根节点下阴影树shadow tree的节点。
  • Event.prototype.initEvent(): 为通过createEvent()创建的事件初始化,该方法对已经被派发的事件无效。
  • Event.prototype.preventDefault(): 如果该默认事件可取消,则取消默认事件。
  • Event.prototype.stopImmediatePropagation(): 如果多个事件监听器被附加到相同元素的相同事件类型上,当此事件触发时,它们会按其被添加的顺序被调用,如果在其中一个事件监听器中执行stopImmediatePropagation(),那么剩下的事件监听器都不会被调用。
  • Event.prototype.stopPropagation: 停止冒泡,阻止事件在DOM中继续冒泡。

每日一题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/WindrunnerMax/EveryDay

参考

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://developer.mozilla.org/zh-CN/docs/Web/API/Event
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【JavaScript】JavaScript开篇基础(5)
方法监听注册方式:addEventListener() 特点:同一个元素同一个事件可以注册多个监听器(监听处理函数function),按注册顺序依次执行
E绵绵
2024/11/13
720
【JavaScript】JavaScript开篇基础(5)
《现代Javascript高级教程》页面生命周期
在 Web 开发中,了解页面生命周期是非常重要的。页面生命周期定义了页面从加载到卸载的整个过程,包括各种事件和阶段。在本文中,我们将详细介绍四个关键事件:DOMContentLoaded、load、beforeunload 和 unload。我们将探讨这些事件的属性、API、应用场景,并提供一些代码示例和参考资料。
linwu
2023/07/27
2620
事件
利用 on 开头的事件,如 onclick, 同一个元素同一个事件只能设置一个处理函数,出现多个处理函数的话,后面的会覆盖前面的。
赤蓝紫
2023/01/01
1.4K0
事件
事件机制
DOM事件模型分为捕获和冒泡。一个事件发生后,会在子元素和父元素之间传播(propagation)。事件传播分为三个阶段:
Cloud-Cloudys
2020/07/07
8040
事件高级
eventTarget.addEventListener()方法将指定的监听器注册到 eventTarget(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。
星辰_大海
2020/09/30
1.4K0
探索 React 合成事件
React 合成事件(SyntheticEvent)是 React 模拟原生 DOM 事件所有能力的一个事件对象,即浏览器原生事件的跨浏览器包装器。它根据 W3C 规范 来定义合成事件,兼容所有浏览器,拥有与浏览器原生事件相同的接口。
pingan8787
2020/11/22
4.1K1
探索 React 合成事件
HTML DOM Event 对象
Event 对象   Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄(Event Handlers)   HTML 4.0 的新特性之一是能够使 HTML 事件触发浏览器中的行为,比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,可将之插入 HTML 标签以定义事件的行为。 属性 此事件发生在何时... onabort 图像的加载被中断。 onblur
新人小试
2018/06/13
1.3K0
JavaScript——DOM事件高级
此方法将指定的监听器注册到eventTarger(目标对象)上,当该对象触发指定的事件时,就会执行事件处理函数。
岳泽以
2022/10/26
1.8K0
JavaScript——DOM事件高级
js事件流机制
在JavaScript中事件流是指一个事件沿特定数据结构传播的一个过程。整个事件流总共包含三个阶段(从dome2来说):1.事件捕获阶段、2.处于事件目标阶段、3.事件冒泡阶段。下面我们来看一个图,只要是谈到事件流都会看到的一个图:
OECOM
2020/07/01
1.5K0
5、React组件事件详解
2.在React中,每个事件处理回调函数都会自动绑定到组件实例(使用ES6语法创建的例外);
keyWords
2018/09/19
3.7K0
5、React组件事件详解
事件高级
给元素添加事件,称为注册事件或者绑定事件。 注册事件有两种方式:传统方式和方法监听注册方式
梨涡浅笑
2022/05/08
1.2K0
事件高级
【如果你要学JS <21>】——事件绑定及解除DOM事件流
3.btn.onclick = function( {} 4.特点:注册事件的唯一性 5.同一个元素同一个事件只能设置一个处理函数 ,最 后注册的处理函数将会覆盖前面注册的处理函数
像素人
2024/01/05
2060
【如果你要学JS <21>】——事件绑定及解除DOM事件流
JavaScript基础-事件监听与处理
在Web开发中,事件驱动编程是核心机制之一,它使得页面能够响应用户的操作,如点击、滚动、键盘输入等。JavaScript提供了强大的事件监听与处理机制,让开发者能够轻松地为DOM元素绑定事件处理程序。本文将深入浅出地介绍JavaScript事件模型、绑定与解除事件监听器的方法,以及在实际应用中常见的问题与易错点,并通过代码示例给出避免策略。
Jimaks
2024/06/12
2840
JavaScript 事件机制
通俗地来说, JavaScript 事件机制描述的是事件在 DOM 里面的传递顺序,以及我们可以对这些事件做出如何的响应。
用户1065635
2019/03/21
8600
JavaScript事件
JavaScript事件 对于事件来讲,首先,我们需要了解这样几个概念:事件;事件处理程序;事件类型;事件流;事件冒泡;事件捕获;事件对象;事件模拟,事件方面的性能优化(事件委托、移除事件处理程序); 事件的概念 事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过监听器(或者处理程序)来预定事件,以便事件发生的时候执行相应的代码。 事件处理程序:我们用户在页面中进行的点击这个动作,鼠标移动的动作,网页页面加载完成的动作等,都可以称之为事件名称,即:click、mousemove、loa
汤高
2018/01/11
2K0
JavaScript事件
读Zepto源码之Event模块
Event 模块是 Zepto 必备的模块之一,由于对 Event Api 不太熟,Event 对象也比较复杂,所以乍一看 Event 模块的源码,有点懵,细看下去,其实也不太复杂。 读Zepto源码
对角另一面
2017/12/27
1.5K0
HTML中DOM 对象事件
前置说明 HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮)。 在 W3C 2 级 DOM 事件中规范了事件模型HTML DOM 事件 指明使用的 DOM 属性级别。 鼠标事件 属性 描述 DOM onclick 当用户点击某个对象时调用的事件句柄。 2 oncontextmenu 在用户点击鼠标右键打开上下文菜单时触发 ondblclick 当用户双击某个对象时调用的事
Adil_zhang
2023/05/02
1.4K0
web前端常见面试题
渐进增强 并不是一种技术,而是一种设计思想。各个浏览器的渲染能力各不相同,要做一个每个人都能看到的网页、感受到的体验都一致的网站几乎不可能。但还是得网站的可访问性,保证用户在任何环境下都能正常访问网页得核心内容或能使用基本功能(避免网页打不开、排版错误等),并为他们提供当前条件下最好的体验,这就是渐进增强得核心思想。
多云转晴
2020/08/25
2.3K0
Element对象
Element是一个通用性非常强的基类,所有Document对象下的对象都继承自它,这个对象描述了所有相同种类的元素所普遍具有的方法和属性,一些接口继承自Element并且增加了一些额外功能的接口描述了具体的行为,例如HTMLElement接口是所有HTML元素的基本接口,而SVGElement接口是所有SVG元素的基础,大多数功能是在这个类的更深层级的接口中被进一步制定的。
WindRunnerMax
2021/02/04
2.1K0
Web开发的基本功
#ThoughtWorkers好声音#第十五期 (图片:网络) 有些东西称为基本功,对于 Web 开发而言,事件处理模型便是其中的一个,我们经常会在代码里遇到阻止浏览器默认行为的做法。 成都办公室
ThoughtWorks
2018/04/16
1.4K0
Web开发的基本功
相关推荐
【JavaScript】JavaScript开篇基础(5)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验