Я работаю над таймером и хотел бы, чтобы операция setInterval()
завершилась, когда счетчик достигнет нуля. Кроме того, я хотел бы, чтобы функция была "отключена", если хотите, чтобы я мог сбросить значение, которое подается в таймер, без таймера, снова начинающего уменьшаться.
Когда я настраиваю код следующим образом:
function countdown(){
var intervalKill = setInterval(function(){
var start = document.getElementById("startValue").innerHTML;
if (start > 1){
var time_left = start - 1;
document.getElementById("startValue").innerHTML = time_left;
} else if (start === 1) {
clearInterval(intervalKill)
}
}, 1000);
}
Он работает отлично, однако, если он достигает 1, и я сбрасываю таймер, он снова начинает обратный отсчет.
Когда я кодирую это так:
function countdown(){
var intervalKill = setInterval(function(){
var start = document.getElementById("startValue").innerHTML;
if (start > 1){
var time_left = start - 1;
document.getElementById("startValue").innerHTML = time_left;
} else if (start === 1) {
clearInterval(intervalKill);
break;
}
}, 1000);
}
Функция просто не запускается вообще. Может кто-то пролить свет на то, что здесь происходит и как заставить его работать?
function countdown(){
var intervalKill = setInterval(function(){
var start = document.getElementById("startValue").innerHTML;
if (start > 1){
var time_left = start - 1;
document.getElementById("startValue").innerHTML = time_left;
} else if (+start === 1) {
clearInterval(intervalKill);
// break; <-- not necessary
}
}, 1000);
}
Либо проанализируйте start
до целого числа, используя unary + или parseInt
либо используйте ==
вместо ===
так как последний также проверяет информацию о типе. innerHTML
возвращает строку.