Search code examples
javascriptvuetify.js

Display Vuetify tooltip on disabled button


I am having difficulty displaying a tooltip on a button that is disabled with Vuetify.

I've made sure the tooltip can be displayed when the button is enabled, this works as expected. I think that this question is related, but I'm not well-versed enough to know if this applies to a v-btn. I attempted to create a custom class and add that to the specific v-btn element but I did not have any luck.

Example 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>

Example JavaScript

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

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

I'm expecting that the tooltip can be displayed when hovering over a disabled button. I'm hoping to use this to explain why the button is disabled.


Solution

  • Not sure if this is the absolute best way but I was able to get a tooltip on a disabled button by wrapping it in a div tag:

    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>