target和currentTarget

简介: 每一个点击事件都会有一个event对象,每一个event对象都有一个target和currentTarget属性,它们有什么区别呢?上代码// html代码 Document body { ...

每一个点击事件都会有一个event对象,每一个event对象都有一个target和currentTarget属性,它们有什么区别呢?

上代码

// html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body {
            padding-left: 200px;
        }
        div {
            border: 1px solid #777;
            height: 300px;
            width: 300px;
        }
        button {
            margin: 100px;
        }
    </style>
</head>
<body>
    <button onclick="clickFun1();">click</button>

    <div onclick="clickFun2();">
        <button>click2</button>
    </div>
</body>
</html>

// js代码

<script>
    function clickFun1() {
        console.log('target', event.target);
        console.log('currentTarget', event.currentTarget);
    }

    function clickFun2() {
        console.log('target', event.target);
        console.log('currentTarget', event.currentTarget);
    }
</script>
  1. 点击button1时,target和currentTarget都指向了button按钮
  2. 点击button2时,target指向button标签,currentTarget指向了div标签
  3. 点击button2所在div时,target和currentTarget都指向了div标签

总结

  1. target指向的是你点击的标签
  2. currentTarget指向的是你绑定事件的标签
  3. 当绑定事件的标签和点击的标签一致时,target和currentTarget指向了同一个标签
目录
相关文章
Altium Designer导出Gerber文件的步骤
在设计好PCB之后就需要发出去制作,一般我们都会选择发送Gerber文件。当然也可以发送PCB原文件,只不过这样没有保密性,这个根据自己的实际情况来选择。如果PCB对于保密性没有要求,自己对工艺又不是很了解的话,为了方便可以直接发送PCB原文件。这里还是建议大家导出Gerber文件做比较好,下面我们就来看一下Altium Designer如何导出Gerber文件。
4850 0
|
数据可视化 数据安全/隐私保护
时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化
时序分解 | MATLAB实现基于SWD群体分解的信号分解分量可视化
|
10月前
|
数据采集 存储 SQL
数据炼金术:从原始数据到商业洞察的五个关键步骤
数据炼金术:从原始数据到商业洞察的五个关键步骤
184 8
|
算法 调度
【调度算法】关于轮盘赌和锦标赛两种选择算子的选用思考
【调度算法】关于轮盘赌和锦标赛两种选择算子的选用思考
624 1
|
人工智能 前端开发 IDE
通义灵码一周年测评:@workspace 和 @terminal 新功能体验分享
作为一名前端开发工程师,我近期体验了通义灵码的@workspace和@terminal新功能。@workspace通过智能解析项目结构,帮助快速上手新项目;@terminal则提供内置命令行环境,简化代码调试和系统管理。这两项功能显著提升了开发效率和代码管理的便捷性,是前端开发的得力助手。
通义灵码一周年测评:@workspace 和 @terminal 新功能体验分享
|
12月前
|
敏捷开发 存储 数据可视化
探索:6 款办公软件如何变革设计团队协作新潮流?
本文深入介绍了6款适合全J人软件设计开发团队的可视化协作软件,包括国内的板栗看板和5款国外的小众软件:Figma Jam、InSightful、Backlog、Taiga和Wekan。这些软件各自拥有独特优势,如板栗看板的任务可视化、Figma Jam的创意空间构建、InSightful的工作时长分析等,旨在提升团队协作效率,助力项目成功推进。
234 5
|
JavaScript 前端开发 Java
基于springboot的留守儿童爱心网站
这是一个基于SpringBoot的留守儿童爱心网站,包含管理员和用户两种角色。管理员负责用户、新闻、志愿活动、捐赠等管理;用户可进行登录注册、爱心捐赠及活动报名。项目采用SpringBoot与Mybatis作为后端框架,前端则使用HTML和VUE。适用于JDK1.8、IDEA/Eclipse、MySQL5.7/8.x,无需特定Tomcat或Maven版本,支持Windows系统。
267 13
基于springboot的留守儿童爱心网站
|
运维 监控 持续交付
运维之道:从新手到高手的蜕变之路
【10月更文挑战第14天】 在当今这个数字化时代,运维作为保障系统稳定运行的重要岗位,其重要性不言而喻。本文将带你走进运维的世界,探索从一名运维新手成长为行业高手的过程。我们将一起了解运维的基本职责、面临的挑战以及必备的技能和知识。通过实际案例分析,揭示如何在实践中不断提升自己的能力,最终实现职业生涯的飞跃。无论你是即将踏入这个行业的新人,还是已经在行业中摸爬滚打多年的老手,相信本文都能为你提供一些有价值的启示和指导。
250 2
|
Ubuntu Linux 程序员
一个9年archlinux重度使用者自述
一个9年archlinux重度使用者自述
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。