当前位置:首页 > JavaScript

js实现event

2026-04-06 21:27:57JavaScript

事件监听与触发

在JavaScript中,事件处理通常通过addEventListener方法实现。该方法允许为特定事件绑定回调函数,例如点击、键盘输入等。

element.addEventListener('click', function(event) {
  console.log('Element clicked', event.target);
});

自定义事件创建

使用CustomEvent构造函数可以创建自定义事件,支持传递详细数据。通过detail属性可附加任意数据供监听器使用。

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

事件触发机制

创建的事件需要通过dispatchEvent方法触发。该方法会将事件分派到目标对象,执行已注册的监听器。

element.dispatchEvent(customEvent);

事件委托模式

利用事件冒泡机制,可在父元素上统一处理子元素事件。这种方式适合动态添加的元素,减少内存消耗。

document.getElementById('parent').addEventListener('click', function(event) {
  if(event.target.matches('.child')) {
    console.log('Child element clicked');
  }
});

事件对象属性

事件对象包含关键属性和方法:

  • target:触发事件的原始元素
  • currentTarget:当前处理事件的元素
  • stopPropagation():阻止事件继续传播
  • preventDefault():阻止默认行为
element.addEventListener('click', function(event) {
  event.stopPropagation();
  console.log(event.target.id);
});

一次性事件处理

设置{once: true}选项可使监听器只执行一次,适用于单次交互场景。

js实现event

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

标签: jsevent
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现继承

js实现继承

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

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现防洪

js实现防洪

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

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…