JavaScript事件监听详解|从点击修改文字到随机背景色(新手实战教程)
网页之所以能实现人机交互点击、悬浮、输入、跳转核心全靠JS 事件监听。静态的 HTML CSS 只能做展示加入事件监听后网页才能「听懂用户操作」并执行对应逻辑。本文结合两段超实用实战代码点击修改文本、点击随机切换背景色从零带你吃透 addEventListener 事件监听新手看完直接上手写交互效果。一、什么是 JS 事件监听核心概念事件监听监视用户的行为当指定行为触发时执行对应的代码。常见用户行为事件点击、鼠标移入、鼠标移出、键盘按下、窗口加载、输入内容等。事件三要素必记事件源谁要被监听按钮、div、输入框等DOM元素事件类型监听什么行为click 点击、mouseover 悬浮等事件处理函数触发后做什么改文字、变色、弹窗、跳转为什么推荐 addEventListenerJS 绑定事件有三种方式现代开发只推荐 addEventListener支持给同一个元素绑定多个事件不会覆盖语法规范、兼容性好、可移除事件分离结构与行为代码更整洁易维护二、实战案例一点击元素修改文字内容需求页面存在一个盒子点击盒子后盒子文字变为 Hello world。完整可运行代码事件监听-修改文字点击我试试script // 1. 获取事件源id为chele的盒子 let pata document.querySelector(#chele); // 2. 绑定点击事件监听 pata.addEventListener(click, function(){ // 3. 触发后的逻辑修改当前元素内部文字 this.innerHTML Hello world; }) /script2. 代码逐行解析 1. document.querySelector(#chele)通过 id 获取 DOM 元素即我们要监听的盒子事件源 2. addEventListener(click, function(){})绑定点击事件监听用户点击操作 3. this指向当前触发事件的元素也就是 #chele 盒子 4. innerHTML修改元素内部的文本/HTML内容 3. 核心亮点 this 关键字妙用不用重复获取元素直接指代触发对象代码更简洁。三、实战案例二点击按钮随机切换网页背景色需求点击按钮自动生成随机 RGB 颜色修改网页整体背景色。本案例用到事件监听 随机数封装函数是前端高频交互效果。完整可运行代码事件监听-随机换背景色点击切换背景色script // 获取按钮元素 let srr document.querySelector(button); // 绑定点击事件监听 srr.addEventListener(click, bgChange); // 背景色切换函数 function bgChange(){ // 拼接随机RGB颜色 let color rgb( random(255) , random(255) , random(255)) // 修改body背景色 document.body.style.backgroundColor color } // 生成0~最大值的随机整数 function random(number){ return Math.floor(Math.random()*(number1)) } /script2. 核心逻辑拆解 1随机数函数封装 Math.random()生成 0~1 之间的随机小数 Math.floor()向下取整保证得到整数 最终生成 0~255 的整数完美适配 RGB 颜色取值范围 2RGB颜色拼接 RGB 颜色规则rgb(红,绿,蓝)三个数值均为 0-255通过随机函数生成三原色数值实现完全随机配色。 3样式修改 document.body.style.backgroundColor修改页面主体背景样式实现视觉变色效果。 3. 分离函数写法优势 - 将随机数生成、变色逻辑拆分代码模块化 - 函数可复用后续其他场景需要随机数可直接调用 - 比匿名函数更易阅读、易调试四、两种事件写法对比重点匿名函数写法适合单次简单逻辑对应案例一修改文字pata.addEventListener(“click”, function(){this.innerHTML “Hello world”;})优点代码紧凑、无需单独定义函数缺点无法复用、适合简单短逻辑具名函数写法适合复杂、可复用逻辑对应案例二随机变色srr.addEventListener(“click”, bgChange);优点逻辑清晰、函数可复用、方便移除事件缺点需要单独定义函数五、新手常见易错点总结获取元素时机错误JS 代码必须写在 DOM 元素后面否则获取不到元素监听失效事件名不带onaddEventListener 中事件为 click不是 onclick忘记随机数取整不使用 Math.floor 会出现小数颜色失效this 使用混乱箭头函数中 this 不指向 DOM 元素简单点击事件优先用普通函数六、拓展常用高频事件清单掌握 click 点击事件后这些事件可以直接套用相同写法mouseover鼠标移入mouseout鼠标移出input输入框输入事件keydown键盘按下resize窗口大小改变写在最后事件监听是 JS 交互的基石所有网页特效、表单交互、弹窗切换、点击功能底层全部依靠 addEventListener 实现。本篇两个案例覆盖了简单文本修改和动态样式修改两大核心场景新手熟练掌握后可以自主拓展出点击变色、点击切换内容、鼠标悬浮特效等各类常用网页效果。

相关新闻

JavaScript标准书写格式规范|新手从零学会优雅写JS代码

JavaScript标准书写格式规范|新手从零学会优雅写JS代码

很多新手写 JavaScript 代码,最大的问题不是不会写逻辑,而是 书写混乱、格式随意:缩进乱、不加分号、变量随便命名、代码堆砌一堆。 看似代码能跑,但是可读性极差、极易出Bug、后期完全无法维护。 本篇博客总结一套新手通用、企业…

2026/10/31 13:42:59 阅读更多 →
Kimi K2 API v2.3接口变更预警:9月30日前未升级将触发兼容性降级,附一键迁移脚本

Kimi K2 API v2.3接口变更预警:9月30日前未升级将触发兼容性降级,附一键迁移脚本

更多请点击: https://kaifayun.com 第一章:Kimi K2 API v2.3接口变更核心概览 Kimi K2 API v2.3 版本于2024年第三季度正式发布,聚焦于稳定性增强、响应效率优化与安全策略升级。本次更新不引入全新端点,但对现有核心接口的请求结…

2026/10/28 20:36:43 阅读更多 →
统计画像中的数据操作:业务语义驱动的数据变形方法论

统计画像中的数据操作:业务语义驱动的数据变形方法论

1. 项目概述:这不是简单的数据清洗,而是统计画像的“解剖刀”“Part 19: Data Manipulation in Statistical Profiling”——这个标题乍看像教科书里一个不起眼的章节编号,但在我带团队做过二十多个行业统计建模项目后,它实际代表…

2026/10/28 8:31:04 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/31 0:59:28 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 11:00:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →