首页/文章/javascript

addEventListener() 方法

2022-12-04
282410 分钟
...

定义和用法

addEventListener() 方法用于向指定元素添加事件句柄。

提示: 使用 removeEventListener() 方法来移除 addEventListener() 方法添加的事件句柄。

语法

`element.addEventListener(event, function, useCapture)`

参数值

event 必须。字符串,指定事件名。

注意: 不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。

function 必须。指定要事件触发时执行的函数。

当事件对象会作为第一个参数传入函数。 事件对象的类型取决于特定的事件。例如, “click” 事件属于 MouseEvent(鼠标事件) 对象。 useCapture 可选。布尔值,指定事件是否在捕获或冒泡阶段执行。

可能值: true - 事件句柄在捕获阶段执行 false- false- 默认。事件句柄在冒泡阶段执行

event

鼠标事件

click 当用户点击某个对象时调用的事件句柄。

contextmenu 在用户点击鼠标右键打开上下文菜单时触发

dblclick 当用户双击某个对象时调用的事件句柄。

mousedown 鼠标按钮被按下。

mouseenter 当鼠标指针移动到元素上时触发。

mouseleave 当鼠标指针移出元素时触发

mousemove 鼠标被移动。

mouseover 鼠标移到某元素之上。

mouseout 鼠标从某元素移开。

mouseup 鼠标按键被松开。

键盘事件

属性 描述 DOM keydown 某个键盘按键被按下。

keypress 某个键盘按键被按下并松开。

keyup 某个键盘按键被松开。

框架/对象(Frame/Object)事件

abort 图像的加载被中断。

( ) beforeunload 该事件在即将离开页面(刷新或关闭)时触发

error 在加载文档或图像时发生错误。

hashchange 该事件在当前 URL 的锚部分发生修改时触发。

load 一张页面或一幅图像完成加载。

pageshow 该事件在用户访问页面时触发

pagehide 该事件在用户离开当前网页跳转到另外一个页面时触发

resize 窗口或框架被重新调整大小。

scroll 当文档被滚动时发生的事件。

unload 用户退出页面。 

表单事件

blur 元素失去焦点时触发

change 该事件在表单元素的内容改变时触发( , , , 和 )

focus 元素获取焦点时触发

focusin 元素即将获取焦点是触发

focusout 元素即将失去焦点是触发

input 元素获取用户输入是触发

reset 表单重置时触发

search 用户向搜索域输入文本时触发 (

剪贴板事件

copy 该事件在用户拷贝元素内容时触发

cut 该事件在用户剪切元素内容时触发

paste 该事件在用户粘贴元素内容时触发

打印事件

afterprint 该事件在页面已经开始打印,或者打印窗口已经关闭时触发

beforeprint 该事件在页面即将开始打印时触发

拖动事件

drag 该事件在元素正在拖动时触发

dragend 该事件在用户完成元素的拖动时触发

dragenter 该事件在拖动的元素进入放置目标时触发

dragleave 该事件在拖动元素离开放置目标时触发

dragover 该事件在拖动元素在放置目标上时触发

dragstart 该事件在用户开始拖动元素时触发

drop 该事件在拖动元素放置在目标区域时触发

多媒体(Media)事件

abort 事件在视频/音频(audio/video)终止加载时触发。

canplay 事件在用户可以开始播放视频/音频(audio/video)时触发。

canplaythrough 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。

durationchange 事件在视频/音频(audio/video)的时长发生变化时触发。

emptied The event occurs when the current playlist is empty ended 事件在视频/音频(audio/video)播放结束时触发。

error 事件在视频/音频(audio/video)数据加载期间发生错误时触发。

loadeddata 事件在浏览器加载视频/音频(audio/video)当前帧时触发触发。

loadedmetadata 事件在指定视频/音频(audio/video)的元数据加载后触发。

loadstart 事件在浏览器开始寻找指定视频/音频(audio/video)触发。

pause 事件在视频/音频(audio/video)暂停时触发。

play 事件在视频/音频(audio/video)开始播放时触发。

playing 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。

progress 事件在浏览器下载指定的视频/音频(audio/video)时触发。

ratechange 事件在视频/音频(audio/video)的播放速度发送改变时触发。

seeked 事件在用户重新定位视频/音频(audio/video)的播放位置后触发。

seeking 事件在用户开始重新定位视频/音频(audio/video)时触发。

stalled 事件在浏览器获取媒体数据,但媒体数据不可用时触发。

suspend 事件在浏览器读取媒体数据中止时触发。

timeupdate 事件在当前的播放位置发送改变时触发。

volumechange 事件在音量发生改变时触发。

waiting 事件在视频由于要播放下一帧而需要缓冲时触发。

动画事件

animationend 该事件在 CSS 动画结束播放时触发

animationiteration 该事件在 CSS 动画重复播放时触发

animationstart 该事件在 CSS 动画开始播放时触发

过渡事件

transitionend 该事件在 CSS 完成过渡后触发。

其他事件

message 该事件通过或者从对象(WebSocket, Web Worker, Event Source 或者子 frame 或父窗口)接收到消息时触发

online 该事件在浏览器开始在线工作时触发。

offline 该事件在浏览器开始离线工作时触发。

popstate 该事件在窗口的浏览历史(history 对象)发生改变时触发。 event occurs when the window’s history changes

show 该事件当元素在上下文菜单显示时触发

storage 该事件在 Web Storage(HTML 5 Web 存储)更新时触发

toggle 该事件在用户打开或关闭 元素时触发

wheel 该事件在鼠标滚轮在元素上下滚动时触发

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
javascript2026-02-24
navigator.sendBeacon全指南
在前端开发中,埋点系统是必不可少的一环。我们经常需要在用户 关闭页面 、 刷新 或 跳转路由 时,向服务器发送最后一条统计数据(比如用户停留时长、页面跳出率)。 但这看似简单的需求,在实现时却危机四伏:请求发不出去?页面跳转卡顿?今天我们就来聊聊这个问题的终极解决方案 —— 。 一、 痛点与传统方案的挣扎 场景还原 当用户点击关闭按钮时,浏览器会触发生命周期事件( 或 )。如果我们直接使用普通的异步 AJAX ( 或 ) 发送请求,浏览...
学习
javascript2025-11-02
理解浏览器事件系统,从用户点击到事件对象的完整旅程
深入理解浏览器事件系统:从用户点击到事件对象的完整旅程 “当我点击页面按钮时,背后发生了什么?为什么回调函数能收到一个包含丰富信息的event对象?今天,让我们一起揭开浏览器事件系统的神秘面纱。” 一个令人困惑的现象 作为前端开发者,我们每天都在写这样的代码: 这段代码如此熟悉,以至于我们很少停下来思考:​ ​这个 对象到底从哪里来?它为什么能知道点击的精确坐标?为什么能识别是哪个元素被点击了?​ ​ 更神奇的是,当我们手动创建事件时:...
学习
javascript2025-10-01
实现大文件上传全流程详解
在日常开发中,大文件上传是个绕不开的坎——动辄几百 MB 甚至 GB 级的文件,直接上传不仅容易超时,还会让用户体验大打折扣。最近我用 Vue+Express 实现了一套完整的大文件上传方案,支持分片上传、断点续传、秒传和手动中。 一、先看效果:我们要实现什么? 先上核心功能清单,确保大家明确目标,知道我们要解决哪些实际问题: 大文件分片上传 :将文件切成固定大小的小片段分批上传,避免单次请求超时 秒传 :服务器已存在完整文件时,直接返...
学习
javascript2025-09-18
JavaScript 的多线程能力:Worker
如果你写过一些计算量稍大的 JavaScript 代码,比如图像处理、大量数据排序或者复杂的算法,你几乎肯定遇到过浏览器“卡死”的现象。点击页面没反应,动画也停了,就像整个世界都静止了。 这就是主线程被阻塞的典型后果。因为主线程既要负责执行 JavaScript,又要负责渲染页面、响应用户操作,一旦它被繁重的计算任务占满,就无暇顾及其他,用户体验便直线下降。 这个问题的根源,正是“主线程是单线程的”。那么,如何解决呢? 答案很简单:把这...
学习面试
javascript2025-09-15
一张 8K 海报差点把首屏拖垮
你给后台管理系统加了一个「企业风采」模块,运营同学一口气上传了 200 张 8K 宣传海报。首屏直接飙到 8.3 s,LCP 红得发紫。 老板一句「能不能像朋友圈那样滑到哪看到哪?」——于是你把懒加载重新翻出来折腾了一轮。 解决方案:三条技术路线,你全踩了一遍 1\. 最偷懒:原生 一行代码就能跑,浏览器帮你搞定。 🔍 关键决策点 2020 年后现代浏览器全覆盖,IE 全军覆没。 必须写死 ,否则 CLS 会抖成 PPT。 适用场景...
学习
javascript2025-09-10
🚀 Web Worker让你的应用丝滑
🌟 引言 在日常的前端开发中,你是否遇到过这样的困扰: 大数据处理时页面卡死 :处理几万条数据时,页面直接卡成PPT,用户点击毫无反应 复杂计算阻塞UI :图片处理、数据分析等计算密集型任务让整个应用假死 文件上传/下载卡顿 :大文件操作时,其他功能完全无法使用 实时数据处理性能差 :WebSocket接收大量数据时,页面渲染严重滞后 今天分享6个Web Worker的核心技巧,让你的应用告别卡顿,用户体验丝滑如德芙! 💡 核心技巧...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录