当前位置:首页 > JavaScript

js实现event函数

2026-02-03 07:18:01JavaScript

事件监听与处理

在JavaScript中,可以通过addEventListener方法为DOM元素绑定事件。该方法接受三个参数:事件类型、回调函数和可选配置项(如capturepassive)。

const button = document.querySelector('button');
button.addEventListener('click', function(event) {
  console.log('Button clicked', event.target);
});

自定义事件触发

通过CustomEvent构造函数可以创建自定义事件,使用dispatchEvent方法触发事件。自定义事件可以携带数据通过detail属性传递。

const event = new CustomEvent('build', { 
  detail: { time: Date.now() } 
});
document.dispatchEvent(event);

document.addEventListener('build', (e) => {
  console.log('Custom event triggered', e.detail);
});

事件委托优化

利用事件冒泡机制,将事件监听器绑定到父元素而非每个子元素,适合动态内容或大量子元素的场景。

document.querySelector('#parent').addEventListener('click', (event) => {
  if (event.target.matches('.child')) {
    console.log('Child element clicked', event.target);
  }
});

事件对象常用属性

事件回调函数接收的event对象包含多个有用属性:

  • target: 触发事件的原始元素
  • currentTarget: 当前处理事件的元素(可能因冒泡与target不同)
  • stopPropagation(): 阻止事件继续冒泡
  • preventDefault(): 阻止默认行为
document.links[0].addEventListener('click', (e) => {
  e.preventDefault();
  console.log('Link click prevented');
});

一次性事件绑定

通过{ once: true }选项可以让事件监听器只执行一次后自动移除。

button.addEventListener('click', () => {
  console.log('This will only log once');
}, { once: true });

被动事件监听器

标记为passive: true的事件监听器不会调用preventDefault(),适合滚动等需要优化性能的场景。

window.addEventListener('scroll', () => {
  console.log('Scrolling');
}, { passive: true });

js实现event函数

标签: 函数js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div c…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaS…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…