点击
当前位置:首页 > JavaScript

js 事件 如何实现

2026-03-15 16:34:50JavaScript

事件绑定方法

DOM 元素属性绑定 通过 HTML 元素的 on[event] 属性直接绑定事件:

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

DOM 对象属性绑定 通过 JavaScript 直接为 DOM 对象的事件属性赋值:

document.getElementById('myBtn').onclick = function() {
  console.log('Button clicked');
};

事件监听器

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

element.addEventListener('click', function(event) {
  // 事件处理逻辑
});

removeEventListener 移除事件监听时需要保持函数引用一致:

const handler = () => console.log('Event');
element.addEventListener('click', handler);
element.removeEventListener('click', handler);

事件对象

常用属性

  • target:触发事件的元素
  • currentTarget:绑定事件的元素
  • type:事件类型
  • preventDefault():阻止默认行为
  • stopPropagation():阻止事件冒泡

事件委托

利用事件冒泡机制在父元素上处理子元素事件:

document.getElementById('parent').addEventListener('click', function(event) {
  if(event.target.classList.contains('child')) {
    // 处理子元素事件
  }
});

自定义事件

创建和触发自定义事件:

// 创建事件
const event = new CustomEvent('build', { detail: { time: Date.now() } });

// 监听事件
document.addEventListener('build', function(e) {
  console.log('自定义事件:', e.detail);
});

// 触发事件
document.dispatchEvent(event);

常见事件类型

鼠标事件

  • click:单击
  • dblclick:双击
  • mouseenter/mouseleave:进入/离开元素
  • mousemove:鼠标移动

键盘事件

  • keydown:按键按下
  • keyup:按键释放
  • keypress:按键按下(已弃用)

表单事件

  • submit:表单提交
  • change:值改变
  • focus/blur:获取/失去焦点

性能优化

事件节流 限制事件触发频率:

function throttle(func, delay) {
  let lastCall = 0;
  return function(...args) {
    const now = new Date().getTime();
    if(now - lastCall < delay) return;
    lastCall = now;
    return func.apply(this, args);
  };
}

window.addEventListener('resize', throttle(function() {
  console.log('Resize event');
}, 200));

被动事件监听器 提升滚动性能:

js 事件 如何实现

window.addEventListener('scroll', function() {
  // 处理逻辑
}, { passive: true });

分享给朋友:

相关文章

vue如何实现拖动

vue如何实现拖动

Vue 实现拖动的几种方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,通过 draggable 属性和相关事件实现拖动功能。 <template> &…

vue底层如何实现

vue底层如何实现

Vue 底层的核心实现机制 Vue 的底层实现主要围绕响应式系统、虚拟 DOM 和组件化架构展开。以下是关键技术的详细解析: 响应式系统 依赖追踪与发布订阅模式 通过 Object.definePr…

jquery事件

jquery事件

jQuery 事件基础 jQuery 提供了一套简化的事件处理机制,允许开发者通过简洁的语法绑定、触发和管理事件。核心方法包括 on()、off()、trigger() 等,支持常见事件(如点击、悬停…

jquery点击事件

jquery点击事件

jQuery 点击事件基础用法 使用 jQuery 绑定点击事件主要通过 .click() 方法或 .on() 方法实现。以下示例展示如何为按钮添加点击事件: // 方法1: 使用 .click()…

vue登录如何实现

vue登录如何实现

Vue 登录功能实现 前端部分(Vue.js) 1. 创建登录表单组件 <template> <div> <form @submit.prevent="ha…

vue如何实现分页

vue如何实现分页

实现分页的基本思路 在Vue中实现分页通常需要结合后端API返回的分页数据和前端的分页组件。前端需要处理页码切换、数据请求和渲染逻辑。 后端API分页参数 后端API通常需要接收分页参数,例如pag…