返回术语

前端

事件Event

你可能会问

事件到底是什么?代码是怎么知道我点了那个按钮的?

简单来说

用户操作或浏览器变化发出的信号,代码监听它来做出反应。

动态说明一次点击,从信号到反应Event
监听登记表

click更新计数

input校验格式

先登记,才有人接
有人听,点击才有下文
浏览器把每个动作广播成事件,监听了它的代码就会被叫起来执行。

01 · 先这样理解

把抽象概念放进真实场景

用户操作或浏览器变化发出的信号,代码监听它来做出反应。

换个角度想

事件像门铃:客人按铃是触发,铃声响遍屋子是广播,只有守在门口的人(监听器)会去开门。没装铃,敲破手门里也没人知道。

02 · 点击演示

点一下按钮,谁在听?

突出显示的部分,就是当前概念在整条流程中负责的位置。

  1. click

    「按钮被点了一下」

    当前步骤
  2. addEventListener('click')

    监听器
    先登记,才有人接——试试两种都选一遍
    等待进入
  3. 处理函数:count + 1

    只有登记过的,才会被叫起来

    等待进入
  4. count0

    点点看会发生什么
    等待进入
1 / 4

Trigger · 用户点击、输入或滚动

03 · 放进真实任务

什么时候会遇到它

响应操作

点击、输入、悬停、滚动,界面的每次反馈都始于事件。

实时校验

输入框每敲一个字触发一次 input,格式边写边查。

排查失灵

按钮点了没反应,先查监听器绑了没有、绑对了没有。

04 · 想一想

用一个问题检查理解

一个按钮点击后要同时更新计数并弹出提示。需要绑两个监听器吗?

查看答案

不用。一次 click 一个监听器就够了,处理函数里既可以更新计数也可以弹提示——事件是信号,收到信号后做几件事由处理函数决定。

老师提醒

最容易踩的坑

监听器是登记出来的,不是天生就有的。动态新增的元素不会自动继承监听;忘了解绑的监听器还会攒在内存里拖慢页面。

⌘K搜索知识库

最近收录

正在载入知识索引…