Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не дать повторно запустится setInterval() (https://javascript.ru/forum/misc/70642-ne-dat-povtorno-zapustitsya-setinterval.html)

KoliK29 21.09.2017 15:49

Не дать повторно запустится setInterval()
 
Есть функция, примерно такая:
function fun() {
    setInterval(function() {...}, 1000);
}

Эта функция вызывается при клике на элемент из списка и с промежутком в одну секунду изменяет текст в другом элементе.
При клике на другой элемент запускается вторая такая же функция и уже они обе изменяют значение в элементе.
Собственно как можно завершит выполнение одного setInterval и запустить другой?
PS: clearInterval пытался использовать, но или я рукожоп или не канает.

ksa 21.09.2017 16:03

Цитата:

Сообщение от KoliK29
clearInterval пытался использовать, но или я рукожоп или не канает

Только он и поможет... :)
Т.к. иначе setInterval() не остановить. :no:

Сделай тестовый пример со своим вариантом обработки, так будет понятнее где ты ошибся. ;)

Dilettante_Pro 21.09.2017 18:20

<ul>
   <li  value="1">Возрастание</li>
   <li  value="-1">Убывание</li>
   <li  value="0">Стоп</li>
</ul>
<input type="text" id = "count" value = "1">
<script>
   var loop,
        variant = document.querySelectorAll("li");
   for(var i = 0;i<variant.length;i++) {
         variant[i].onclick = foo;
   }
   function foo() {
       clearInterval(loop);
       var step = +this.value;
       loop = setInterval(function() {
           count.value = (+count.value + step).toString();
       }, 1000);     
    }
</script>


Часовой пояс GMT +3, время: 21:40.