Если вы хотите сделать интервал, вы не должны использовать setTimeout
, а setInterval
.
Функция setInterval
работает так же, как и setTimeout
, она требует обратного вызова и количество миллисекунд. Он также возвращает объект интервала, который можно использовать для остановки интервала при передаче его в функцию clearInterval
.
Ваш код не работал, поскольку вы никогда не меняли значение weightingall
. Таким образом, вы будете получать одну и ту же сумму каждый раз.
Здесь я создаю рабочий прототип вашего кода. Обратите внимание, что я удалил несколько вещей, чтобы заставить его работать должным образом. Вы не можете просто скопировать и вставить это в свой код, ожидая, что все будет работать.
var weightingall = 100;
let interval = setInterval(() => {
var weighting1 = 10;
// we remove 10 each time.
weightingall = weightingall - weighting1;
document.getElementById("display").innerHTML = weightingall;
// if the weightingall variable comes down to 0, we clear the interval.
if(weightingall <= 0 ){
clearInterval(interval);
}
}, 1000);
<div id="display"></div>
Обратите внимание, что я использовал функцию стрелки и let
здесь для определения объема.
Вы должны всегда использовать let
/ const
вместо var