当前位置:首页 > JavaScript

js实现事件委托

2026-03-01 02:07:21JavaScript

事件委托的基本概念

事件委托是一种利用事件冒泡机制的技术,通过将事件监听器绑定到父元素而非每个子元素上,统一管理子元素的事件。这种方式能减少内存占用并动态处理新增元素。

实现事件委托的步骤

绑定父元素监听器
选择父元素(如 ul)作为事件委托的容器,监听目标事件(如 click):

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

判断目标元素
通过 event.target 获取实际触发事件的子元素,根据需求过滤非目标元素(如只处理 li):

if (event.target.tagName === 'LI') {
  console.log('子元素被点击:', event.target.textContent);
}

动态元素支持
事件委托天然支持动态添加的子元素,无需重新绑定监听器。例如新增 li 后直接触发父元素监听:

const newItem = document.createElement('li');
newItem.textContent = 'New Item';
document.getElementById('parent').appendChild(newItem);

实际应用示例

以下是一个完整的事件委托示例,实现点击列表项高亮:

js实现事件委托

document.getElementById('list').addEventListener('click', function(event) {
  if (event.target.classList.contains('item')) {
    event.target.style.backgroundColor = 'yellow';
  }
});

注意事项

  • 事件冒泡可能被 stopPropagation() 中断,需确保不阻止冒泡。
  • 复杂场景可通过 closest() 方法匹配更灵活的选择器:
    if (event.target.closest('.item')) { /* 逻辑 */ }

标签: 事件js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现拖拽

js实现拖拽

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

js 实现继承

js 实现继承

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

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…