在禁用的按钮上显示Vuetify工具提示

39

我在使用Vuetify时遇到了一个问题,即无法在禁用的按钮上显示工具提示。

我已经确保当按钮启用时可以显示工具提示,这一点可以正常工作。我认为这个问题与此相关,但我不太懂是否适用于v-btn。我尝试创建一个自定义类并将其添加到特定的v-btn元素中,但没有成功。

示例 HTML

<div id="app">
  <v-app id="inspire">
    <v-container fluid class="text-xs-center">
      <v-layout
        flex
        justify-space-between
        row
        wrap
      >
        <v-flex xs12>
          <v-btn @click="show = !show">toggle</v-btn>
        </v-flex>

        <v-flex xs12 class="mt-5">
          <v-tooltip v-model="show" top>
            <template v-slot:activator="{ on }">
              <v-btn disabled icon v-on="on">
                <v-icon color="grey lighten-1">shopping_cart</v-icon>
              </v-btn>
            </template>
            <span>Programmatic tooltip</span>
          </v-tooltip>
        </v-flex>
      </v-layout>
    </v-container>
  </v-app>
</div>

示例JavaScript

new Vue({
  el: '#app',
  data () {
    return {
      show: false
    }
  }
})

当鼠标悬停在禁用按钮上时,我希望能显示工具提示。我希望可以通过这种方式解释为什么按钮被禁用。

https://codepen.io/anon/pen/ZNqpOW?editors=1010

3个回答

71

不确定这是否是最佳方法,但我成功地通过将其包装在div标签中,在禁用的按钮上获得了提示:

Codepen

<v-tooltip v-model="show" top>
  <template v-slot:activator="{ on }">
    <div v-on="on">
      <v-btn disabled icon>
        <v-icon color="grey lighten-1">shopping_cart</v-icon>
      </v-btn>
    </div>
  </template>
  <span>Programmatic tooltip</span>
</v-tooltip>

5
我不得不将我的内容用<span>标签包裹起来,而不是<div>,因为它没有在正确的位置上定位。谢谢。 - Savlon

28

随着vuetify提示工具演变为slot语法,正确的解决方案现在是这个:

<v-tooltip bottom :disabled="valid">
    <template v-slot:activator="{ on }">
    <div v-on="on" class="d-inline-block">
        <v-btn color="primary" :disabled="!valid">Button</v-btn>
    </div>
    </template>
    <span>You must accept first</span>
</v-tooltip>

最适合我的答案! - Simon Klimek

3

在Hexodus的回答基础上,这将是Vuetify 3的解决方案:

    <v-tooltip bottom :disabled="valid">
        <template v-slot:activator="{ props }">
            <div v-bind="props" class="d-inline-block">
                <v-btn color="primary" :disabled="!valid">Button</v-btn>
            </div>
        </template>
        <span>You must accept first</span>
    </v-tooltip>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接