Javascript setInterval赢了';t使用clearInterval清除并使用setInterval重置时重新启动

Javascript setInterval赢了';t使用clearInterval清除并使用setInterval重置时重新启动,javascript,jquery,Javascript,Jquery,我有一个倒计时,它使用setInterval从一分钟倒计时到一秒钟。 单击“开始”按钮时,它使用setInterval(倒计时,1000)开始倒计时。当我单击另一个按钮时,它将清除倒计时。如果我再次按下“开始”按钮,则间隔不会使用setInterval(倒计时,1000)再次倒计时-它停留在一分钟 我使用的是setInterval吗?我希望再次单击开始按钮后,setInterval将以1s的间隔开始倒计时 请在下面查找相关代码,并感谢您的时间 //Start button $("#startQu

我有一个倒计时,它使用setInterval从一分钟倒计时到一秒钟。 单击“开始”按钮时,它使用setInterval(倒计时,1000)开始倒计时。当我单击另一个按钮时,它将清除倒计时。如果我再次按下“开始”按钮,则间隔不会使用setInterval(倒计时,1000)再次倒计时-它停留在一分钟

我使用的是setInterval吗?我希望再次单击开始按钮后,setInterval将以1s的间隔开始倒计时

请在下面查找相关代码,并感谢您的时间

//Start button
$("#startQuiz").click(function () {
            $(".questionStart").css("display", "none").removeClass("questionActive");
            $(".questionStart").next().addClass("questionActive");

            startTimer = true;
            setInterval(countdown, 1000);

        });

//countdown code (at a global scope)
var countdown = setInterval(function () {

    if (startTimer === true) {    
            //timer code here
        }
    }

}, 1000);

//reset countdown code called on separate button click
function levelCloseReset() {
    startTimer = false;
    clearInterval(countdown);
}
试试这个

(函数(){
设计数器=null;
设定时器=60;
$(“#startQuiz”)。单击(函数(){
resetquick();//重置测验;
$(“.questionStart”).css(“显示”、“无”).removeClass(“questionActive”);
$(“.questionStart”).next().addClass(“questionActive”);
$(“#startQuiz”).attr(“禁用”,真);
$(“stopquick”).attr(“disabled”,false);
$(“#倒计时”).text(“剩余时间:+计时器);
计数器=设置间隔(倒计时,1000);
});
$(“#停止测验”)。单击(函数(){
$(“.questionStart”).css(“显示”、“无”).removeClass(“questionActive”);
$(“.questionStart”).next().addClass(“questionActive”);
$(“#startQuiz”).attr(“禁用”,false);
$(“stopquick”).attr(“disabled”,true);
$(“#倒计时”).text(“已停止:”;
重置测验();
});
函数倒计时(){
如果(计时器==0){
$(“#倒计时”).text(“时间结束:”;
$(“#startQuiz”).attr(“禁用”,真);
$(“stopquick”).attr(“disabled”,true);
重置测验();
}否则{
$(“#倒计时”).text(“剩余时间:+--计时器);
}
}
函数resetquick(){
定时器=60;
清除间隔(计数器);
}
}
)();

开始测验

停止测验
setInterval()
的第一个参数应该是一个函数。
setInterval
函数本身会返回一个数字,这是一个键,稍后用于清除计时器。@Pointy感谢您的指导。看来我对setInterval的理解是错误的。你提到过它会返回一个数字-这个数字的性质是什么?它可以用来重置计时器吗?谢谢你的回复。这个解决方案帮助我解决了我的问题。我将把这作为答案。