Таймер Javascript уже запущен до нажатия кнопки «Пуск» - PullRequest
0 голосов
/ 15 ноября 2018

Halo, у меня есть функция таймера, но таймер уже запущен до того, как я нажму на старт.Как это решить, я хочу, когда я нажимаю кнопку запуска, таймер будет работать.Если я удалил секунды ++ в первой функции, время не запускается, даже если я нажму кнопку «Пуск», время все равно 0. Спасибо за помощь.это мой код

var h1 = document.getElementsByTagName('h1')[0],
    start = document.getElementById('start'),
    stop = document.getElementById('stop'),
    seconds = 0, minutes = 0, hours = 0,
    t;

function add() {
    seconds++;
    if (seconds >= 60) {
        seconds = 0;
        minutes++;
        if (minutes >= 60) {
            minutes = 0;
            hours++;
        }
    }
    
    h1.textContent = (hours ? (hours > 9 ? hours : "0" + hours) : "00") + ":" + (minutes ? (minutes > 9 ? minutes : "0" + minutes) : "00") + ":" + (seconds > 9 ? seconds : "0" + seconds);

    timer();
}
function timer() {
    t = setTimeout(add, 1000);
}
timer();


/* Start button */
start.onclick = timer;

/* Stop button */
stop.onclick = function() {
    clearTimeout(t);
}
<h1><time>00:00:00</time></h1>
<button id="start">start</button>
<button id="stop">stop</button>

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Удалить таймер (); из вашего кода

function timer() {
    t = setTimeout(add, 1000);
}
//timer();


/* Start button */
start.onclick = timer;
0 голосов
/ 15 ноября 2018

Удалите паразит timer(); в строке после объявления функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...