我试图让这个setInterval函数在按钮切换到" STOP"并点击。单词START将变为STOP,反之亦然,但随机BG颜色变化不会停止而是复合。
$(document).ready(function(){
function randomColor(){
return "#" + Math.random().toString(16).slice(2,8);
};
$("button").click(function(){
var $go = $("button").text();
if ($go === "START"){
setInterval(function Colors(){
$("body").css("background-color", randomColor());
}, 300);
$("button").text("STOP");
}
else {
//Tried clearInterval and doing a new $("body").css("background-color","white")
$("button").text("START");
};
});
});
如果网站链接或其他信息有用,请告知我们。谢谢!
答案 0 :(得分:2)
您必须将setInterval
返回的值保存在变量中,并在想要停止时将其传递给clearInterval
:
var timer;
$("button").click(function(){
var $go = $("button").text();
if ($go === "START"){
timer = setInterval(function Colors(){
$("body").css("background-color", randomColor());
}, 300);
$("button").text("STOP");
}
else {
clearInterval(timer);
$("button").text("START");
};
});