Я установил setInterval, чтобы изменить цвет div, используя разные классы css. Я начинаю менять цвета, нажимая кнопку, но я также хочу, чтобы она меняла цвета, используя ту же кнопку. Я не могу заставить это работать. Вот мои ЯШ:Как остановить setInterval loop
var bsstyles = ["alert alert-success","alert alert-info","alert alert-warning","alert alert-danger"];
var i = 0;
var buttonstate = false;
var runner;
var mainfun = function() {
if (buttonstate == 0) {
buttonstate = true;
document.getElementById("changebutton").className = "btn btn-primary btn-lg active";
var runner = setInterval(function() {
document.getElementById("alertw").className = bsstyles[i];
i++;
if (i==bsstyles.length) {
i=0;
}
},1000);
} else {
clearInterval(runner);
document.getElementById("changebutton").className = "btn btn-primary btn-lg";
buttonstate = false;
}
}
var changeButton = document.getElementById("changebutton");
changeButton.addEventListener('click',mainfun,false);
Здесь вы JSFiddle
Хороший совет. Я просто немного редактирую ваш код, чтобы быть более четким. – YoannM
Это имеет смысл, спасибо! (Извините, но не опубликовано). – Colin