javascript - 在 VueJS 中获取事件监听器元素而不是子元素

标签 javascript vue.js

我正在尝试在以下代码中获取已附加事件监听器的元素。

<div class="navigation-link" id="home" @click="click($event)">
  <button class="navigation-link-inner btn-large transparent z-depth-0">
    <i class="material-icons left">contact_mail</i>Home
  </button>
</div>
<div class="navigation-link" id="cms" @click="click($event)">
  <button class="navigation-link-inner btn-large transparent z-depth-0">
    <i class="material-icons left">contact_mail</i>CMS
  </button>
</div>
<div class="navigation-link" id="contact" @click="click($event)">
  <button class="navigation-link-inner btn-large transparent z-depth-0">
    <i class="material-icons left">contact_mail</i>Contact
  </button>
</div>



但是,当我单击链接时,我会根据确切的单击位置获取这些元素:

<i class="material-icons left">contact_mail</i>Home
<button class="navigation-link-inner btn-large transparent z-depth-0">
  <i class="material-icons left">contact_mail</i>Home
</button>
<div class="navigation-link" id="home">
  <button class="navigation-link-inner btn-large transparent z-depth-0">
    <i class="material-icons left">contact_mail</i>Home
  </button>
</div>



我只想获取这个元素

<div class="navigation-link" id="home">
  <button class="navigation-link-inner btn-large transparent z-depth-0">
    <i class="material-icons left">contact_mail</i>Home
  </button>
</div>

即我已附加事件监听器的父元素。我怎样才能得到这个? 有没有一种简单的方法可以通过仅将一个事件监听器附加到父级而不是在每个链接上来实现此目的?

最佳答案

为了引用监听器所附加的元素,您应该使用 evt.currentTarget而不是evt.target .

关于javascript - 在 VueJS 中获取事件监听器元素而不是子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61062540/

相关文章:

javascript - Rails .js.erb 模板不再适用于 Webpack

PHP 和 PDO 防止 Javascript 注入(inject)

javascript - Vue Js - 文件输入更改后发送 axios 请求

javascript - 如何使整行可点击?

javascript - 如何将 javascript 示例与外部 js 一起使用?滚动后突出显示 div

javascript - 给定一串 HTML 代码,我如何遍历每个标记并删除所有 "event"属性?

javascript - 为什么 eval() 在 React Native 中不起作用?

javascript - vuejs动态添加占位符

javascript - 有没有办法检测作用域插槽是否传递给组件?

typescript - 在 Vue.JS 中使用 TypeScript 时如何从导入中删除 .vue 扩展名?