Javascript 在带有Vue的链接中触发一个按钮

Javascript 在带有Vue的链接中触发一个按钮,javascript,vue.js,nuxt.js,vuetify.js,Javascript,Vue.js,Nuxt.js,Vuetify.js,我有一组带有作者信息的图像,现在我添加了一些按钮,允许用户喜欢这些图像 由于图像有一个指向图像屏幕的链接,我不知道如何触发按钮以避免触发链接 下面是代码,我使用的是Vuetify和Nuxt: <nuxt-link :to=" `/photo/${slotProps.item.id}/${ slotProps.item.slug }` " > <v-hover> <v-img slot-s

我有一组带有作者信息的图像,现在我添加了一些按钮,允许用户喜欢这些图像

由于图像有一个指向图像屏幕的链接,我不知道如何触发按钮以避免触发链接

下面是代码,我使用的是Vuetify和Nuxt:

<nuxt-link
  :to="
    `/photo/${slotProps.item.id}/${
      slotProps.item.slug
    }`
  "
>
  <v-hover>
    <v-img
      slot-scope="{ hover }"
      :src="slotProps.item.url"
    >
      <v-fade-transition mode="in-out">
        <div
          v-if="hover"
          class="d-flex transition-fast-in-fast-out photo-overlay pa-2"
        >
          <div
            class="d-flex pl-1 credits justify-space-between align-center w-100"
          >
            <div>
              <nuxt-link
                :to="
                  `/user/${slotProps.item.pId}`
                "
                class="secondary--text body-2 d-inline-block"
              >
                <v-avatar size="30">
                  <img
                    :src="slotProps.item.avatar"
                    :alt="`${slotProps.item.name}`"
                  />
                </v-avatar>
                <span class="ml-2">
                  {{ slotProps.item.name }}
                </span>
              </nuxt-link>
            </div>
            <div>
              <v-menu
                v-model="addToGalleriesMenu"
                :close-on-content-click="false"
                :nudge-width="200"
              >
                <template v-slot:activator="{ on, attrs }">
                  <v-btn v-on="on" v-bind="attrs" icon color="secondary">
                    <v-icon small>
                      fal fa-hearth
                    </v-icon>
                  </v-btn>
                </template>
                <v-card outlined>
                  <v-card-title>Test</v-card-title>
                </v-card>
              </v-menu>
            </div>
          </div>
        </div>
      </v-fade-transition>
    </v-img>
  </v-hover>
</nuxt-link>

{{slotProps.item.name}
法法炉
试验
上面的代码生成一个图像,鼠标悬停时,底部会出现一个层,显示名称和一个按钮,以喜欢该图像

点击用户链接,它工作正常,正如预期的那样。单击应该触发操作的按钮不起作用,因为图像链接被单击


如何解决此问题?

您可以使用Vue单击修改器非常轻松地停止事件向父元素的传播:


...  
...
不使用Vue修改器也可以实现同样的效果:


...  
...
方法:{
测试(事件){
event.preventDefault()
event.stopPropagation()
}
}

谢谢你的提问,但是如何处理v-on=“on”当我没有点击
@处理程序时,我应该把stopPropagation放在哪里?Thanks@AyeyeBrazo尝试添加空属性:
多亏了您的代码片段,我终于找到了解决方案!干杯