@aweui

Как задать тегу класс через определенное время?

Доброго дня.
Есть такой код:

<template>
  <div>
    <span class="b-span"
	// v-bind:class="{ 'b-span_active' }" ???
    >
    </span>
  </div>
</template>

<script>
export default {
	name: 'name',
	data () {
		return {
      dataTime: '300',
		}
	}
}
</script>


Предполагается, что произойдет некий клик, после которого данному span-у добавится класс b-span_active. dataTime: '300', - это тот самый интервал в м/с., через который должен добавится класс. На ум приходит конечно же settimeout, но как это реализовать - не понимаю.

Буду благодарен за помощь.
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
<span class="b-span" :class="{ 'b-span_active': active }">hello, world!!</span>
<button @click="onClick">click me</button>

data: () => ({
  active: false,
  time: 300,
}),
methods: {
  onClick() {
    setTimeout(() => this.active = true, this.time);
  },
},
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MalkovVladimir73
@MalkovVladimir73
Fullstack (node + vue.js)
Создайте обработчик на
некий клик

Вида:
function () {
  setTimeout(300, () => {
    var span = document.querySelector('.b-span') // либо селектор по id
    span.classList.add('b-span_active')
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы