当前位置:首页 > JavaScript

js实现监听

2026-03-15 05:59:16JavaScript

事件监听基础

在JavaScript中,监听事件主要通过 addEventListener 方法实现。该方法接受三个参数:事件类型、回调函数及可选的配置项。

element.addEventListener('click', function(event) {
  console.log('事件触发', event.target);
});

常见事件类型

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

事件委托

通过父元素监听子元素事件,利用事件冒泡机制减少监听器数量。

js实现监听

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

移除监听

使用 removeEventListener 移除已绑定的事件,需确保回调函数为同一引用。

js实现监听

const handler = function() { console.log('仅触发一次'); };
element.addEventListener('click', handler);
element.removeEventListener('click', handler);

自定义事件

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

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

性能优化

  • 使用事件委托减少监听器数量。
  • 对高频事件(如 scrollresize)添加防抖(debounce)或节流(throttle)。
  • 在不需要时及时移除监听器,避免内存泄漏。

兼容性处理

旧版IE(IE8及以下)使用 attachEvent 而非 addEventListener,需做兼容判断。

if (element.attachEvent) {
  element.attachEvent('onclick', handler);
} else {
  element.addEventListener('click', handler);
}

标签: js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

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

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…