当前位置:首页 > JavaScript

js 监听实现

2026-03-13 20:10:20JavaScript

事件监听基础

在JavaScript中,通过addEventListener方法实现事件监听。语法如下:

element.addEventListener(eventType, callback, options);
  • eventType:事件类型(如"click""keydown")。
  • callback:事件触发时执行的函数。
  • options:可选参数(如{ once: true }表示只触发一次)。

常见事件类型

  • 鼠标事件clickmouseovermouseout
  • 键盘事件keydownkeyup
  • 表单事件submitchangefocus
  • 窗口事件resizescrollload

事件对象

回调函数接收event对象,包含事件相关信息:

button.addEventListener("click", (event) => {
  console.log(event.target); // 触发事件的元素
  event.preventDefault();    // 阻止默认行为
});

事件委托

通过父元素监听子元素事件,利用事件冒泡机制:

document.getElementById("parent").addEventListener("click", (event) => {
  if (event.target.classList.contains("child")) {
    console.log("子元素被点击");
  }
});

移除监听

使用removeEventListener移除已绑定的事件:

const handler = () => console.log("事件触发");
element.addEventListener("click", handler);
element.removeEventListener("click", handler); // 移除监听

自定义事件

通过CustomEvent创建和触发自定义事件:

js 监听实现

const event = new CustomEvent("customEvent", { detail: { data: "自定义数据" } });
element.addEventListener("customEvent", (e) => console.log(e.detail.data));
element.dispatchEvent(event); // 触发事件

性能优化

  • 对频繁事件(如scrollresize)使用防抖(debounce)或节流(throttle)。
  • 避免在循环中重复绑定事件,优先使用事件委托。

标签: js
分享给朋友:

相关文章

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…