当前位置:首页 > 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实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

利用js实现

利用js实现

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

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js 实现滚动

js 实现滚动

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

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…