简体   繁体   中英

Vue JS computed property and jquery

I want to turn an element invisible when a (bootstrap) tab is active.

So, the way I'm trying to do it is creating a computed property that returns if the tab is active using jquery this way:

computed: {
    IsAbainteracoesAtiva: function () {
        return ($('div.active')[1].id == "interacoes")
    }
}

But this computed property always returns false, even if it's true. My guess is that Vue is not updating it.

Any sugestions? I'm opened to other solutions too.

I assume the bootstrap tap is active with a click, otherwise correct me, and I'll come back with another answer.

// Simulate tab
<tab @click="toggleTabState"></tab>

// Simulate bootstrap element to show
<div v-if="tabIsOpen"></div>

export default {
  data() {
    return {
      tabIsOpen: false
    }
  },

  methods: {
    toggleTabState() {
      this.tabIsOpen = !this.tabIsOpen
    }
  }
}

Gonna need some of your HTML to see what else is going on. Are you iterating through a lot of elements with a v-for ?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM