Я не совсем уверен, как справиться с этим, поскольку я не понимаю, что я делаю неправильно, поэтому каждый раз, когда я нажимаю на созданную кнопку «Пуск», запускается setInterval:
$("#questBox").on("click", "#startQuestButton", function(){
document.getElementById("startQuestButton").classList.add("hidden");
var requiredTime = 10000;
var timer = 0;
var interval = setInterval(function(){
if(timer>requiredTime){
clearInterval(interval)
document.getElementById("startQuestButton").classList.remove("hidden");
}
timer+=1000;
}, 1000);
}
И startQuestButton - это div, присутствующий в моем html-файле:
<div id="startQuestButton"></div>
Теперь, когда я нажимаю кнопку пуска во второй раз, запускаются 2 идентичных setIntervals, 3 - в третий раз и так далее.
Я даже пытался установить интервал в ноль до и после того, как я нажимаю на кнопку запуска. Кроме того, кнопка запуска скрыта до тех пор, пока идет интервал. Я хочу полностью уничтожить предыдущий интервал, чтобы при нажатии кнопки «Пуск» срабатывал только один.
Мне нужно setInterval для отображения индикатора выполнения, который имитирует полосу загрузки (поэтому каждую секунду ширина цветного элемента увеличивается на несколько пикселей).