当前位置:首页 > JavaScript

js监听实现

2026-04-06 17:53:15JavaScript

事件监听基础

在JavaScript中,事件监听通过addEventListener方法实现。该方法接收三个参数:事件类型、回调函数及可选的配置对象。基本语法如下:

element.addEventListener('eventType', callbackFunction, options);

常见的事件类型包括clickmouseoverkeydown等。回调函数会在事件触发时执行,接收一个事件对象作为参数。

事件委托模式

事件委托利用事件冒泡机制,将事件监听器绑定到父元素而非子元素。这种方法适用于动态生成的子元素或大量相似元素:

document.getElementById('parent').addEventListener('click', function(event) {
  if (event.target.matches('.child')) {
    // 处理子元素逻辑
  }
});

自定义事件触发

通过CustomEvent构造函数可以创建和派发自定义事件,实现组件间通信:

const customEvent = new CustomEvent('customEventName', {
  detail: { key: 'value' }
});
element.dispatchEvent(customEvent);

element.addEventListener('customEventName', (e) => {
  console.log(e.detail.key); // 输出 'value'
});

性能优化建议

避免在频繁触发的事件(如scroll)中使用复杂逻辑,可通过防抖(debounce)或节流(throttle)优化:

function debounce(func, delay) {
  let timeoutId;
  return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => func.apply(this, args), delay);
  };
}

window.addEventListener('resize', debounce(() => {
  console.log('窗口大小改变');
}, 200));

移除监听器

使用removeEventListener移除不再需要的事件监听,注意必须传入与添加时相同的函数引用:

function handleClick() { console.log('Clicked'); }
element.addEventListener('click', handleClick);
element.removeEventListener('click', handleClick);

被动事件监听器

对于可能阻塞页面滚动的事件,添加{ passive: true }选项可提升滚动性能:

js监听实现

window.addEventListener('touchstart', () => {}, { passive: true });

标签: js
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js防抖和节流实现

js防抖和节流实现

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

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现 功能

js实现 功能

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