@vonsyus

Как остановить SetInterval в секундомере?

Я написал секундомер, который начинает работать при нажатии на цифру 1, но я не могу остановить его работу, когда пользователь дошёл до последнего (суть игры простая: нужно по порядку нажать на все цифры) 5e60e8fd8f92e528116564.png

Сам секундомер работает через setInterval, который вызывается отдельной функцией и я не могу его остановить из другой функции

function checkBtn(value, randValue) {
    if (value == 1) {
        startTimer();
    }
    if (value - 1 === checkValue) {
        checkValue++;
    } else {
        alert('incorrect!!!!!!!!!!!!!!!');
        checkValue = 0;
    }

    if (value == Math.pow(randValue, 2)) {
    // ------------------------------в этом ифе мне нужно, чтобы setInterval прекращался
        alert('u did it');
    }
}

function startTimer(timer) {
    const min = document.getElementById('min');
    const sec = document.getElementById('sec');
    let s = '00', m = '00';

    setInterval(function() {
        s = +s + 1;
        if (s < 10) { 
            s = '0' + s;
        }
        if (s == 60) {
            s = '00';
            m = +m + 1;
            if (m < 10) { 
                m = '0' + m; 
            }
        }

        sec.innerText = s;
        min.innerText = m;
    }, 1000);
}


Гит: https://github.com/vonsyus/digits
Проект для наглядности: https://vonsyus.github.io/digits/
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
@vonsyus Автор вопроса
Ответ в комментарии к вопросу вверху

В данном случае clearInterval не работает, вместо него clearTimeout
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
var interval;
....
interval = setInterval(function() {...},100);
...
clearInterval(interval);
Ответ написан
@Che603000
c 2011 javascript
const key = setInterval(function() {  // запуск
...
clearInterval(key); // остановить
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы