SetInterval работает только один раз при изменении стиля в VueJs

я пытался запустить этот простой код, который запускает эффект с помощью кнопки. Эффект должен чередовать класс "highlight" или "shrink" при каждом новом тике setInterval (прикрепите соответствующий класс к div с идентификатором "effect" ниже), вот html:

<script src = "https://npmcdn.com/vue/dist/vue.js"></script>

    <div id = "exercise">
      <!-- 1) Start the Effect with the Button. The Effect should alternate the "highlight" or "shrink" class on each new setInterval tick (attach respective class to the div with id "effect" below) -->
      <div>
        <button @click = "startEffect">Start Effect</button>
        <div id = "effect" :class = "effectClasses"></div>
      </div>

вот CSS:

 #effect {
  width: 100px;
  height: 100px;
  border: 1px solid black;
}

.highlight {
  background-color: red;
  width: 200px !important;
}

.shrink {
  background-color: gray;
  width: 50px !important;
}

и это файл JS:

    new Vue({
  el: '#exercise',
  data: {
        effectClasses :{
    highlight:false,
    shrink:true}
  },
  methods: {
    startEffect: function() {
    var vm = this;
    setInterval(function(){
       console.info('higlight 1:'+ vm.effectClasses.highlight);
        vm.effectClasses.highlight = !vm.effectClasses.highlight;      console.info('higlight 2 :'+ vm.effectClasses.highlight);

console.info('shrink 1 :' + vm.effectClasses.shrink);      
      vm.effectClasses.shrink =  !vm.effectClasses.shrink;
console.info('shrink 2 :' +vm.effectClasses.shrink);

    }, 1000);
    }
  }
});

журналы консоли работают нормально, но стиль не меняется каждую секунду, что странно

Что показывают журналы консоли? Выделение 1 говорит «истина», а выделение 2 — «ложь» и так далее?

DoHn 15.03.2019 04:18

@MOHAMED Ваш код работает, как и ожидалось, в этом кодовая ручка

tony19 15.03.2019 04:22

да, журналы консоли показывают, что значения выделения и сжатия меняются между истинным и ложным

MOHAMED HAMMI 15.03.2019 22:30

@tony19 спасибо за ваш отзыв, кажется, ваш код работает

MOHAMED HAMMI 15.03.2019 22:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
148
0

Другие вопросы по теме