关于javascript:JavaScript中eventtarget与this区别

明天在看一段代码的时候发现了一个event.target,那么什么是event.target呢
target属性可返回触发事件的指标节点,简略来说,他会返回鼠标所点击的间接触发事件的节点。 从这点来说,与this是非常相像的,那么两者有什么区别呢

<body>
    <ul>
        <li>我是第1个元素</li>
        <li>我是第2个元素</li>
        <li>我是第3个元素</li>
        <li>我是第4个元素</li>
        <li>我是第5个元素</li>
    </ul>
</body>
<script>
    $("li").click(function (event) {
        console.log(this)
        console.log(event.target);
    })
</script>

当咱们点击第一个li标签时,两者输入的后果是一样的

当给父元素ul标签增加同名函数(触发事件冒泡)

<script>
    $("ul").click(function (event) {
        console.log(this)
        console.log(event.target);
    })
</script>

此时点击第一个li标签的时候,this输入了ul标签,而event.target输入了li标签

由此能够看出,在没有事件冒泡的时候,this与event.target返回值是雷同的,都为触发事件的指标节点,而当触发事件冒泡后,this变为ul标签,而event.target依然为li标签

总结:this与event.target的区别为this可变,当含有事件冒泡时,this始终指向该函数的调用者,而event.target则不会变,始终指向触发该事件的指标节点

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理