javascript - 单击事件目标给出元素或其子元素,而不是父元素

标签 javascript vue.js vuejs2

我有这个 HTML 元素:

<div class="list-group">
    <a href="javascript:;" @click="showDetails(notification, $event)" class="list-group-item" v-for="notification in notifications" :key="notification.id">
        <h4 class="list-group-item-heading">{{ '{{ notification.title }}' }}</h4>
        <p class="list-group-item-text">{{ '{{ notification.created_at|moment }}' }}</p>
    </a>
</div>

还有这个 Javascript:

return new Vue({
    methods: {
        showDetails: function (notification, event) {
          this.notification = notification

          console.info(event.target)
        }
    }
}

问题是 event.target 返回我点击的确切元素。这意味着它可以是 a 元素,或其子元素之一(h4p)。

如何获取 a 元素(带有 @click 处理程序的元素),即使用户点击了其中一个子元素?

最佳答案

使用 event.currentTarget 指向您附加监听器的元素。它不会随着事件冒泡而改变

https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget

关于javascript - 单击事件目标给出元素或其子元素,而不是父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149925/

相关文章:

Javascript 和嵌套的 JSON 问题

javascript - jQuery 插件 Tablesorter 对日期排序不正确

javascript - 两个相似功能之间的区别,为什么一个有效而另一个无效

javascript - 基本 vue.js 2 和 vue-resource http get 变量赋值

vue.js - Vuetify 粘性标题工具栏

当图表数据被替换、更新等时,vue.js vue-chartjs 图表不更新

javascript - d3.js 中条形图之间的关联距离

javascript - 无法读取未定义的属性 'setState'

javascript - 如何在 Vue 中的 v-for 列表项中切换两个图标

javascript - 如何使用 Vue 命名插槽呈现静态内容列表?