我已經設置了一個setInterval來改變使用不同的css類的div的顏色。我開始通過按下按鈕來改變顏色,但我也想停止它使用相同的按鈕來改變顏色。我無法讓它工作。這裏是我的JS:如何停止setInterval循環
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 2014-10-06 23:56:19
這很有道理,謝謝! (對不起,發佈新內容。) – Colin 2014-10-07 16:28:00