当前位置:首页 > JavaScript

js 监听实现

2026-04-05 14:23:38JavaScript

监听事件的基本方法

在JavaScript中,可以通过addEventListener方法监听DOM元素的事件。该方法接受三个参数:事件类型、回调函数和可选的选项对象。

element.addEventListener('eventType', function(event) {
  // 事件处理逻辑
});

常用事件类型

  • click:点击事件
  • mouseover/mouseout:鼠标移入/移出
  • keydown/keyup:键盘按下/释放
  • focus/blur:获取/失去焦点
  • submit:表单提交
  • change:表单元素值改变
  • scroll:滚动事件
  • resize:窗口大小改变

事件委托模式

通过事件冒泡机制,可以在父元素上监听子元素的事件,适用于动态添加的元素。

parentElement.addEventListener('eventType', function(event) {
  if(event.target.matches('childSelector')) {
    // 处理子元素事件
  }
});

自定义事件

可以创建和触发自定义事件,实现组件间的通信。

js 监听实现

// 创建事件
const customEvent = new CustomEvent('customEventName', {
  detail: { /* 传递的数据 */ }
});

// 监听事件
element.addEventListener('customEventName', function(event) {
  console.log(event.detail);
});

// 触发事件
element.dispatchEvent(customEvent);

移除事件监听

为避免内存泄漏,需要移除不再使用的事件监听器。注意回调函数必须与添加时相同。

function handler() { /* ... */ }
element.addEventListener('eventType', handler);
element.removeEventListener('eventType', handler);

被动事件监听器

对于频繁触发的事件(如scroll、touchmove),可以标记为被动以提高性能。

js 监听实现

element.addEventListener('scroll', function() {}, { passive: true });

一次性事件监听

使用{once: true}选项让事件只触发一次后自动移除。

element.addEventListener('click', function() {}, { once: true });

跨浏览器兼容性处理

对于旧版IE浏览器(IE8及以下),需要使用attachEvent方法。

if(element.addEventListener) {
  element.addEventListener('eventType', handler);
} else {
  element.attachEvent('on' + eventType, handler);
}

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现选题

js实现选题

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

js实现视口

js实现视口

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

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…