#javascript
#javascript
Вопрос:
У меня есть код, который должен реализовать секундомер. Это работает, но если я запускаю секундомер после нажатия кнопки паузы или сброса, то время тикает слишком быстро. Как я могу это исправить?
Решено.
Комментарии:
1. Вам нужно опубликовать код в вашем вопросе. Сообщение об ошибке, которого вы избежали, в основном сообщило вам об этом.
2. О, прошу прощения. Я думал, что это не подойдет. Это мой 2-й день обучения
3.
clearInterval(main)
не имеет смысла.main
это функция, а не возвращаемый интервал таймераsetInterval()
.
Ответ №1:
Вот урезанный пример того, как можно сохранить идентификатор интервала, а затем использовать его для очистки интервала:
let SECONDS = 0;
let intervalId;
function run() {
intervalId = setInterval(main, 1000)
}
function pause() {
clearInterval(intervalId)
}
function reset() {
clearInterval(intervalId)
SECONDS = 0
update_display()
}
function update_display() {
document.getElementById("seconds").innerText = SECONDS
}
function main() {
SECONDS
update_display()
}
<div class="display-time">
<span id="seconds">0</span>
</div>
<!-- buttons start, stop and reset -->
<div class="button-group">
<button id="btnRun" onclick="run()">RUN</button>
<button id="btnPause" onclick="pause()">PAUSE</button>
<button id="btnReset" onclick="reset()">RESET</button>
</div>