Abdullah Al Mamun
Abdullah Al Mamun

Reputation: 132

Is there any way to use addClass() to added a class on click in vueJs?

I tried this code but not working. Is there any solution? Please help me. Thank you.

<div id="app">
  <li class="blah" @click="onClk">
     Divs to be clicked
  </li>
</div>

new Vue({
  el: '#app',
  methods: {
    onClk(e) {
        e.target.addClass('red');
    }
  }
})

Upvotes: 0

Views: 83

Answers (2)

Harshal Patil
Harshal Patil

Reputation: 20970

classList is not the Vue.js way of declarative thinking. Ideally your code would be:

<div id="app">
  <li class="blah" @click="onClk" :class="{ red: isActive }">
    Divs to be clicked
  </li>
</div>


new Vue({
  el: '#app',

  data() {
    return {
      isActive: false
    };
  }

  methods: {
    onClk(e) {
      this.isActive = true;
    }
  }
})

Upvotes: 3

ittus
ittus

Reputation: 22403

You can use

 onClk(e) {
    e.target.classList.add('red');
 }

You can check demo here

Upvotes: 2

Related Questions