当前位置: 首页 > news >正文

13. event.target 和 event.currentTarget 区别

总结

  1. 利用事件冒泡原理,将子元素的事件委托给父元素。

定义说明

  • event.target
    表示触发事件的元素,即事件的最初发起者。该属性不会随着事件冒泡阶段而改变,始终指向触发事件的那个元素。

  • event.currentTarget
    表示当前正在执行事件处理函数的元素,即绑定事件监听器的那个元素。在事件传播过程中,该值保持不变。

主要区别对比表

对比维度event.targetevent.currentTarget
含义触发事件的元素绑定事件的元素
是否随事件冒泡改变是,可能在冒泡阶段指向子元素否,始终保持绑定目标不变
用途获取实际点击/触发的元素获取绑定事件的当前元素

代码示例

<!-- HTML 结构 -->
<div id="parent"><button id="child">点击我</button>
</div>
// JavaScript 事件监听
document.getElementById("parent").addEventListener("click", function (event) {console.log("event.target:", event.target); // 输出 <button id="child">...</button>console.log("event.currentTarget:", event.currentTarget); // 输出 <div id="parent">...</div>
});

当点击 <button> 时:

  • event.target 指向 <button>(触发事件的元素)。
  • event.currentTarget 指向 <div>(绑定事件监听器的元素)。

应用场景

  • 使用 event.target 的场景

    • 实现事件委托(将子元素的事件交由父级统一处理)。
    • 动态加载元素时,无需重复绑定事件。
  • 使用 event.currentTarget 的场景

    • 需要确保访问的是绑定事件的目标元素本身。
    • 避免因事件冒泡导致的元素误判。

注意事项

  • event.targetevent.currentTarget 在事件冒泡机制中行为不同,需根据需求选择使用。
  • event.currentTarget只读属性,不可赋值。
  • 📌 使用事件委托时,通常使用 event.target 来判断具体触发的子元素。

http://www.dtcms.com/a/294991.html

相关文章:

  • 【C语言进阶】动态内存管理(2)
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
  • 【Web APIs】JavaScript 节点操作 ⑦ ( 创建节点案例 | 网页评论功能 )
  • 旅游管理虚拟仿真实训室:重构实践教学新生态
  • 掌握Autofac:IOC容器实战指南
  • GaussDB view视图的用法
  • 分布式光伏发电项目简易故障录波装置介绍
  • [硬件电路-78]:模拟器件 - 从宏观到微观:高频信号下电路与光路的特性演变与挑战
  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • GUI简介 - OpenExo
  • 回顾 Palantir:八年之旅的反思
  • ​​SBOM 软件供应链安全(转)
  • haproxy的七层代理
  • Day01_C++编程
  • Ollama(3)模型迁移和API使用
  • Modbus协议详解与c#应用
  • 重写 与 重载
  • pig cloud框架中引入websocket
  • nginx websocket 代理 断网后 再联网 不能连接
  • Windows下编译UTF8-CPP
  • 前端学习 5:DFT
  • 云效CI/CD教程(PHP项目)
  • 如何提升连带消费?从新零售“人-货-场”模型拆解
  • 220V降5V,输出100MA,为家电电器消费类产品提供电源WD5202L
  • OpenCV+Python
  • WebGIS 常用坐标系
  • 真的假的?CISP认证考试将全面推行线下机考?
  • 我考PostgreSQL中级专家证书二三事
  • ubuntu24.04 nvidia driver无效///重装驱动