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指向了同一个标签
目录
相关文章
|
9月前
|
机器学习/深度学习
TypeError: Cannot read property ‘name‘ of undefined at Qe.onShow
TypeError: Cannot read property ‘name‘ of undefined at Qe.onShow
68 0
ReferenceError: document is not defined
ReferenceError: document is not defined
72 0
|
前端开发 JavaScript
前端|event.target与event.currentTarget的区别
前端|event.target与event.currentTarget的区别
126 0
undefined reference to `swr_init+
undefined reference to `swr_init+
118 0
undefined reference to symbol XGetWindowAttributes/cairo_destroy/XShapeGetRectangles
undefined reference to symbol XGetWindowAttributes/cairo_destroy/XShapeGetRectangles
157 0
|
JavaScript 前端开发
18、DOM对象(window、screen、location、history、navigation)
18、DOM对象(window、screen、location、history、navigation)
156 0
|
Web App开发 JavaScript
$(...).find is not a function
$(...).find is not a function
219 0
|
JavaScript
void mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property b
void mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: vue项目示例,请参考甄佰 单向数据流所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。
3451 0

热门文章

最新文章