当前位置: 首页 > news >正文

JavaScript事件监听详解|从点击修改文字到随机背景色(新手实战教程)

网页之所以能实现人机交互(点击、悬浮、输入、跳转),核心全靠JS 事件监听。
静态的 HTML + CSS 只能做展示,加入事件监听后,网页才能「听懂用户操作」并执行对应逻辑。
本文结合两段超实用实战代码:点击修改文本、点击随机切换背景色,从零带你吃透 addEventListener 事件监听,新手看完直接上手写交互效果。


一、什么是 JS 事件监听?

  1. 核心概念
    事件监听:监视用户的行为,当指定行为触发时,执行对应的代码。
    常见用户行为(事件):点击、鼠标移入、鼠标移出、键盘按下、窗口加载、输入内容等。
  2. 事件三要素(必记)
  • 事件源:谁要被监听?(按钮、div、输入框等DOM元素)
  • 事件类型:监听什么行为?(click 点击、mouseover 悬浮等)
  • 事件处理函数:触发后做什么?(改文字、变色、弹窗、跳转)
  1. 为什么推荐 addEventListener?
    JS 绑定事件有三种方式,现代开发只推荐 addEventListener:
  • 支持给同一个元素绑定多个事件,不会覆盖
  • 语法规范、兼容性好、可移除事件
  • 分离结构与行为,代码更整洁易维护

二、实战案例一:点击元素修改文字内容
需求:页面存在一个盒子,点击盒子后,盒子文字变为 Hello world。

  1. 完整可运行代码
事件监听-修改文字
点击我试试
<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 颜色,修改网页整体背景色。
本案例用到:事件监听 + 随机数封装函数,是前端高频交互效果。

  1. 完整可运行代码
事件监听-随机换背景色点击切换背景色
<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. 分离函数写法优势 - 将随机数生成、变色逻辑拆分,代码模块化 - 函数可复用,后续其他场景需要随机数可直接调用 - 比匿名函数更易阅读、易调试

四、两种事件写法对比(重点)

  1. 匿名函数写法(适合单次简单逻辑)
    对应案例一:修改文字
    pata.addEventListener(“click”, function(){
    this.innerHTML = “Hello world”;
    })
    优点:代码紧凑、无需单独定义函数
    缺点:无法复用、适合简单短逻辑
  2. 具名函数写法(适合复杂、可复用逻辑)
    对应案例二:随机变色
    srr.addEventListener(“click”, bgChange);
    优点:逻辑清晰、函数可复用、方便移除事件
    缺点:需要单独定义函数

五、新手常见易错点总结

  • 获取元素时机错误:JS 代码必须写在 DOM 元素后面,否则获取不到元素,监听失效
  • 事件名不带on:addEventListener 中事件为 click,不是 onclick
  • 忘记随机数取整:不使用 Math.floor 会出现小数,颜色失效
  • this 使用混乱:箭头函数中 this 不指向 DOM 元素,简单点击事件优先用普通函数

六、拓展:常用高频事件清单
掌握 click 点击事件后,这些事件可以直接套用相同写法:

  • mouseover:鼠标移入
  • mouseout:鼠标移出
  • input:输入框输入事件
  • keydown:键盘按下
  • resize:窗口大小改变

写在最后
事件监听是 JS 交互的基石,所有网页特效、表单交互、弹窗切换、点击功能,底层全部依靠 addEventListener 实现。
本篇两个案例覆盖了简单文本修改和动态样式修改两大核心场景,新手熟练掌握后,可以自主拓展出点击变色、点击切换内容、鼠标悬浮特效等各类常用网页效果。

http://www.jsqmd.com/news/1222328/

相关文章:

  • 嵌入式系统性能优化:DMA与多媒体加速器架构解析
  • 2026年7月最新卡地亚西安西咸万象城维修保养服务电话 - 卡地亚官方售后中心
  • 广州工业设备服务GEO城市合伙人选型推荐哪家靠谱:源头技术、分润模式与合伙人权益一次看清 - 子柔传媒
  • 2026年泉州清源山十大山居住宿优选榜单:深度评测与避坑指南 - 热点速览
  • 亲身到店探访广州泰格豪雅官方售后服务中心|最新地址与24小时售后热线(2026年7月最新) - 亨得利官方服务中心
  • DeepSeek V4灰度测试、马斯克Grok 4.6下周开测、上海AI实验室Intern-S2击败Opus4.8 | 7月18日 AI日报
  • Python核心模块分类与使用指南
  • 嵌入式开发核心:NFS服务器搭建与板端挂载共享目录
  • 数学公理体系大全:第十七章 希尔伯特平面几何公理全貌
  • 2026 年更新:辛集可靠的锻铜雕塑制造商推荐几家,揭秘:顶级铜雕的秘密工艺曝光 - 企业官方推荐【认证】
  • JavaMail核心功能与实战应用详解
  • Android UI开发核心技巧与性能优化实践
  • 广州家居建材材料服务GEO城市合伙人选型推荐哪家靠谱:源头厂商能力、合伙人权益与分润模式一次看清 - 小随科技
  • 长期业务外包服务商怎么选?2026年企业级服务十大品牌实力榜 - 增长观测局
  • 品质升级:2026大金空调开启24小时售后服务人工电话400号码全天在线 - 热点速览
  • 2026南通活体宠物售卖商家实测测评长文|本地购宠避坑科普完整版 - 同城宠物优选基地
  • 7.19学习总结
  • 2026年7月重庆装修口碑榜:头部标杆与中等资质企业对比,哪家更稳妥? - 互联网科技品牌测评
  • 千瓦级ACDC电源多模式效率优化与数字控制技术解析
  • 普拉陶柔光砖荣获“陶瓷领军品牌“ 柔光砖领域标杆地位获行业权威认可
  • 技术实践中的注意事项与方案对比方法论
  • 【AI做YouTube视频终极指南】:2024年7大爆款生成工具+实测ROI数据,新手72小时上线首支AI视频?
  • 数学公理体系大全:第十五章 泛代数与等式逻辑:代数结构的公理化之巅
  • Unity HDRP水体渲染:从Shader Graph到屏幕空间反射的轻量级实现
  • 品质升级:2026富士通将军空调开启24小时售后服务人工电话400号码全天在线 - 热点速览
  • 2026新疆和田玉原石选购指南 南疆国玉城全链条服务解析 - 互联网科技品牌测评
  • 武汉南华光电职业技术学校2026年招生简章招生电话 - 武汉中职最新信息发布
  • 积家中国官方售后服务中心|服务热线及网点地址权威信息通告(2026年7月更新) - 积家官方售后服务中心
  • 亲身探访广州百达翡丽官方售后服务中心|官方地址与售后电话(2026年7月最新) - 百达翡丽服务中心
  • Copilot数据模型演进全图谱:从CodeGeeX到GitHub Copilot X的7次关键范式跃迁