当前位置:首页 > JavaScript

js event实现

2026-02-01 10:56:07JavaScript

JavaScript 事件实现

JavaScript 事件是用于处理用户交互或浏览器行为的核心机制。以下是几种常见的事件实现方式:

内联事件处理

在 HTML 元素中直接添加事件属性,例如:

<button onclick="alert('Clicked!')">点击</button>

DOM 属性绑定

通过 JavaScript 获取元素并为其事件属性赋值:

js event实现

const button = document.querySelector('button');
button.onclick = function() {
  console.log('Button clicked');
};

addEventListener

推荐的标准方法,支持多个事件监听器:

const button = document.querySelector('button');
button.addEventListener('click', function(event) {
  console.log('Event type:', event.type);
});

事件委托

利用事件冒泡机制处理动态元素:

js event实现

document.body.addEventListener('click', function(event) {
  if (event.target.matches('.item')) {
    console.log('Item clicked:', event.target);
  }
});

自定义事件

创建和触发自定义事件:

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

element.addEventListener('build', function(e) {
  console.log('Custom event:', e.detail);
});

事件对象常用属性

  • event.target:触发事件的元素
  • event.currentTarget:当前处理事件的元素
  • event.preventDefault():阻止默认行为
  • event.stopPropagation():停止事件冒泡

事件类型示例

  • 鼠标事件:click, mouseenter, mouseleave
  • 键盘事件:keydown, keyup
  • 表单事件:submit, change, focus
  • 窗口事件:load, resize, scroll

异步事件处理

使用 Promise 封装事件:

function waitForEvent(element, eventType) {
  return new Promise(resolve => {
    element.addEventListener(eventType, resolve, { once: true });
  });
}

// 使用示例
waitForEvent(button, 'click').then(() => {
  console.log('Button was clicked');
});

性能优化建议

  • 对频繁触发的事件(如 scrollresize)使用防抖或节流
  • 及时移除不需要的事件监听器
  • 合理使用被动事件监听器提高滚动性能:
    window.addEventListener('scroll', function() {}, { passive: true });

标签: jsevent
分享给朋友:

相关文章

js实现打印

js实现打印

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

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…