当前位置:首页 > JavaScript

js监听实现

2026-02-02 00:43:56JavaScript

事件监听基础方法

在JavaScript中,事件监听可通过以下方式实现:

addEventListener方法
语法:

js监听实现

element.addEventListener(eventType, callback, useCapture);
  • eventType:事件类型(如"click""keydown")。
  • callback:事件触发时执行的函数。
  • useCapture(可选):布尔值,指定事件捕获阶段(true)或冒泡阶段(false,默认)。

示例:

document.getElementById("button").addEventListener("click", function() {
    console.log("按钮被点击");
});

移除事件监听

使用removeEventListener移除已添加的监听器,需传递与添加时相同的函数引用:

js监听实现

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

事件委托(Event Delegation)

通过父元素监听子元素事件,适用于动态内容或大量子元素:

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

自定义事件

创建并触发自定义事件:

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

常见事件类型

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

注意事项

  • 避免匿名函数导致无法移除监听。
  • 事件委托减少内存消耗,提升性能。
  • 使用event.preventDefault()阻止默认行为(如表单提交)。

标签: js
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…