JavaScript中的事件Event / CustomEvent / EventListener / EventTarget的相关概念。

news/2024/7/19 15:20:58 标签: js

在前端开发中,我们经常会给元素绑定事件。但恐怕对javascript本身事件机制没有太深的关注。

在浏览器事件相关的API中,主要有三个接口:

  • Event
  • EventTarget
  • EventListener

以上的三个接口就足以完成一个事件的创建,监听,以及派发。

// 创建事件
const event = new Event('foo');

// 事件监听
const eventListener= function (e) {console.log(e.detail)};
elem.addEventListener('foo', eventListener, false);

// 派发事件
elem.dispatchEvent(event);

在上面的例子当中:

  • elem 代表EventTarget,你可以为他添加事件addEventListener,移除事件removeEventListener,或者派发事件dispatchEvent。大部分情况下是HTML节点,但也可以是其他的对象比如XHR
  • event 自然就是指我们创建的Event。他不仅仅是指定了事件的名字。还可以添加其他信息:
const event = new CustomEvent('build', { detail: '定制信息' });

上边的CustomEvent是Event的子接口。事实上event有很多子接口:
在这里插入图片描述

  • 最后,变量eventListener 指实现了EventListener的对象,能够处理其对应的事件。一般而言就是普通函数。

总结一下,一个事件的生命周期有一个主体(EventTarget),一般而言就是HTML节点,可以使用addEventListener为该主体绑定事件(Event)与处理函数(EventListener)。最终实现事件的绑定与派发。


http://www.niftyadmin.cn/n/1382712.html

相关文章

java\C#\php主流语言实现FMS流媒体传输协议RTMP的开源组件

java:bladeDS http://sourceforge.net/adobe/blazeds/wiki/Home/ .net:FlourinceFX http://www.fluorinefx.com/ php: AMFPHP http://sourceforge.net/projects/amfphp/files/#files

Web Service工作原理及实例

一、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注…

一些软件测试术语和解释

1. Unit testing (单元测试):指一段代码的基本测试,其实际大小是未定的,通常是一个函数或子程序,一般由开发者执行。 2. Integration testing (集成测试):被测试系统的所有组件都集成在一起,找出被测试系统…

唯一序列号生成,自測支持高并发,不支持集群

序列号组成:前缀 日期 尾数 比如:ZC20140806000001 总共两个组成:一个枚举类。一个静态生成器。另外须要设计自己主动任务每日凌晨或其它时间重置一次尾数。 先上枚举类: package com.boxmeal.base.constant.common;import jav…

json-server和她的RESTful API

前言 在前端领域,经常会对后台数据进行Mock,即模拟假数据。因为前后台往往是并行开发的,我们按照接口文档自行伪造(mock)一些数据。这样在理想状态下,在最终联调时,只需要切换一下配置文件的服…

Linux 下配置网卡的别名即网卡子IP的配置 转

what 什么是ip别名?用windows的话说,就是为一个网卡配置多个ip。when什么场合增加ip别名能派上用场?布网需要、多ip访问测试、特定软件对多ip的需要...and so on.how下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名。至于…

js图片放大镜 可动态更换图片

现仅已.NET为例&#xff0c;HTML代码如下 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >2 <HTML>3 <HEAD>4 <title>test</title>5 <meta name"GENERATOR" Content"Microsoft Visual Stu…

使用DBeaver连接hive

连接首先新建一个连接&#xff08;可以看到支持的数据库非常多&#xff09;&#xff0c;选择Apache Hive&#xff0c;点击下一步。    填写连接数据库的用户名、密码、地址、库等相关信息&#xff0c;然后点击编辑连接驱动。    选择下载或更新。    在这里一定要选…