当前位置:首页 > JavaScript

js监听实现

2026-02-02 00:43:56JavaScript

事件监听基础方法

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

addEventListener方法
语法:

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

示例:

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

移除事件监听

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

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("子元素被点击");
    }
});

自定义事件

创建并触发自定义事件:

js监听实现

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实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let currentY…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…