Meh*_*ari 4 vue.js vuejs2 vuetify.js
我只想在VTooltip点击激活器而不是悬停时触发 Vuetify 工具提示。我试图将它与一个变量绑定,但仍然在悬停时触发。
methods: {
doCopy(){
// copy logic
this.showCopied = true;
setTimeout(() => {
this.showCopied = false
}, 1000)
}
}
Run Code Online (Sandbox Code Playgroud)
<VTooltip v-model="showCopied">
<template #activator="{ on }">
<VBtn v-on="on" @click="doCopy"> COPY </VBtn>
</template>
</VTooltip>
Run Code Online (Sandbox Code Playgroud)
由于一些错误,这实际上比我预期的要复杂。您应该能够做到<v-tooltip :open-on-hover="false">,但仍然添加了一个焦点侦听器,这会导致单击立即关闭工具提示。相反,您需要分别绑定 click 和 blur 事件,并将其添加retain-focus-on-click到按钮中,使其不会立即模糊。
完整解决方案:
<v-tooltip bottom :open-on-hover="false">
<template #activator="{ on }">
<v-btn @click="on.click" @blur="on.blur" retain-focus-on-click>Copy</v-btn>
</template>
<span>Copy</span>
</v-tooltip>
Run Code Online (Sandbox Code Playgroud)
事实证明我必须禁用激活器的默认事件处理程序。只需删除默认事件对象(on)绑定即可解决该问题。
<VTooltip v-model="showCopied">
<template #activator={}>
<VBtn @click="doCopy"> COPY </VBtn>
</template>
</VTooltip>
Run Code Online (Sandbox Code Playgroud)
[更新] 基于 @Kael Watts-Deuchar 的回答 注意:v 模型投标是强制性的
| 归档时间: |
|
| 查看次数: |
2424 次 |
| 最近记录: |