news 2026/6/4 12:58:55

HoRain云--JavaScript事件全解析:从基础到实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--JavaScript事件全解析:从基础到实战

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

JavaScript 事件

事件流模型

事件处理方式

1. HTML 内联属性

2. DOM 属性绑定

3. addEventListener(推荐方案)

常见事件类型

事件委托

事件对象常用方法

事件处理最佳实践


JavaScript 事件

JavaScript 事件是 HTML 元素上可被 JavaScript 侦测并响应的用户行为或页面状态变化,通过事件处理程序实现网页动态交互功能。

事件流模型

事件执行遵循 DOM 事件流模型,包含三个阶段:

  1. 事件捕获阶段:从window向下传递,直到目标元素的父级
  2. 目标阶段:事件到达实际触发事件的元素(event.target
  3. 事件冒泡阶段:从目标元素向上冒泡,依次触发祖先元素上的监听器

默认情况下,事件处理程序在冒泡阶段执行(addEventListener的第三个参数默认为false

事件处理方式

1. HTML 内联属性

<button onclick="handleClick()">点击我</button>

2. DOM 属性绑定

const btn = document.getElementById('myButton'); btn.onclick = function(event) { console.log('按钮被点击', event.target); };

3. addEventListener(推荐方案)

const btn = document.getElementById('myButton'); btn.addEventListener('click', function(event) { console.log('按钮被点击', event.target); }, { capture: false, once: false, passive: false });

常见事件类型

事件类型说明示例
用户界面事件页面加载、卸载和调整大小load,unload,resize,scroll
焦点事件元素获得或失去焦点blur,focus,focusin,focusout
鼠标事件鼠标交互click,mouseover,mouseout,mousedown,mouseup
键盘事件键盘输入keydown,keyup,keypress
输入事件输入框内容变化input,change
表单事件表单操作submit,reset
触摸事件触摸屏交互touchstart,touchmove,touchend

事件委托

事件委托是利用事件冒泡特性,将事件监听器添加到父元素上,而不是每个子元素上:

document.querySelector('#list').addEventListener('click', function(event) { if(event.target.tagName === 'LI') { event.target.classList.toggle('selected'); } });

优点

事件对象常用方法

方法说明
event.preventDefault()阻止事件的默认行为(如表单提交)
event.stopPropagation()阻止事件继续传播(阻止冒泡)
event.target真正触发事件的元素
event.currentTarget绑定监听器的元素(与this相同)

事件处理最佳实践

  1. 优先使用addEventListener而非内联属性或 DOM 属性绑定
  2. 为动态元素使用事件委托
  3. 使用event.target.matches()进行精确目标匹配
  4. 对频繁触发的事件(如scrollresize)使用节流(throttle)优化性能

理解 JavaScript 事件机制是构建交互式 Web 应用的基础,合理运用这些机制可以大大提高应用的性能和可维护性。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 20:21:22

AI印象派艺术工坊助力美育教学?课堂即时艺术化演示案例

AI印象派艺术工坊助力美育教学&#xff1f;课堂即时艺术化演示案例 1. 技术背景与教育场景需求 在当代美育教学中&#xff0c;如何让学生直观理解不同艺术流派的视觉特征&#xff0c;一直是教学设计中的难点。传统方式依赖静态作品展示&#xff0c;缺乏互动性与生成体验。随着…

作者头像 李华
网站建设 2026/5/29 21:08:08

PX4无人机飞控系统实战完整指南:从环境搭建到首飞成功

PX4无人机飞控系统实战完整指南&#xff1a;从环境搭建到首飞成功 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 想要快速掌握无人机自主飞行的核心技术吗&#xff1f;这份完整的PX4无人机飞控系统…

作者头像 李华
网站建设 2026/5/31 20:35:29

AI手势识别+彩虹骨骼可视化:开发者入门必看实操手册

AI手势识别彩虹骨骼可视化&#xff1a;开发者入门必看实操手册 1. 引言 1.1 人机交互的新入口&#xff1a;AI手势识别 在智能硬件、虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和人机交互系统中&#xff0c;手势识别正成为一种自然、直观的输入…

作者头像 李华
网站建设 2026/5/29 0:28:00

FST ITN-ZH与大数据平台集成:Hadoop/Spark处理流程

FST ITN-ZH与大数据平台集成&#xff1a;Hadoop/Spark处理流程 1. 引言 随着语音识别、自然语言处理等AI技术的广泛应用&#xff0c;原始文本中常包含大量非标准化表达&#xff0c;如“二零零八年八月八日”、“一百二十三”等。这些表达在下游任务&#xff08;如信息抽取、数…

作者头像 李华