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