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>
  1. 代码逐行解析 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>
  1. 核心逻辑拆解 (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 实现。

本篇两个案例覆盖了简单文本修改和动态样式修改两大核心场景,新手熟练掌握后,可以自主拓展出点击变色、点击切换内容、鼠标悬浮特效等各类常用网页效果。

相关推荐
RAN11426760081 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .2 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988722 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
高级程序源3 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
泡海椒3 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)3 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
lizz22763 小时前
Babel插件手册
javascript
2501_933670793 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2334 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山5 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析