当前位置:首页 > 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防抖和节流实现

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

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…