当前位置:首页 > 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属性传递。

js实现event函数

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对象包含多个有用属性:

js实现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
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

vue实现js休眠

vue实现js休眠

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

js实现吸色

js实现吸色

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