需要帮助(javascript/jquery定时器函数)

需要帮助(javascript/jquery定时器函数),javascript,jquery,Javascript,Jquery,我有一个2分钟的计时器,从点击btn开始。如果你点击btn它工作得很好,在完成2分钟后再次点击btn它工作得很好 问题:如果用户在完成2分钟之前单击btn,计时器将重新激活自身并启动计时器并行两次或n次 我需要帮助,在每一个点击计时器应该从一开始,并运行只有一个计时器 请参阅“运行代码片段”以了解更多信息 $('.timer btn').off('click').on('click',myfunction); 函数myfunction(){ var倒计时=2*60*1000; var time

我有一个2分钟的计时器,从点击btn开始。如果你点击btn它工作得很好,在完成2分钟后再次点击btn它工作得很好

问题:如果用户在完成2分钟之前单击btn,计时器将重新激活自身并启动计时器并行两次或n次

我需要帮助,在每一个点击计时器应该从一开始,并运行只有一个计时器

请参阅“运行代码片段”以了解更多信息

$('.timer btn').off('click').on('click',myfunction);
函数myfunction(){
var倒计时=2*60*1000;
var timerId=setInterval(函数(){
倒计时-=1000;
var min=数学楼层(倒计时/(60*1000));
//var sec=Math.floor(倒计时-(分钟*60*1000));//错误
var sec=数学地板((倒计时-(分钟*60*1000))/1000);//正确

如果(倒计时您需要在开始新的间隔之前清除上一个间隔

var timerId;

function myfunction(){
    var countdown = 2 * 60 * 1000;
    timerId = clearInterval(timerId);
    timerId = setInterval(function(){
        countdown -= 1000;
        var min = Math.floor(countdown / (60 * 1000));
        //var sec = Math.floor(countdown - (min * 60 * 1000));  // wrong
        var sec = Math.floor((countdown - (min * 60 * 1000)) / 1000);  //correct

        if (countdown <= 0) {
            alert("30 min!");
            clearInterval(timerId);
            //doSomething();
        } else {
            $("#timerDiv").html(min + " : " + sec);
        }
    }, 1000);
}

$('.timer-btn').off('click').on('click', myfunction);
var-timerId;
函数myfunction(){
var倒计时=2*60*1000;
timerId=清除间隔(timerId);
timerId=setInterval(函数(){
倒计时-=1000;
var min=数学楼层(倒计时/(60*1000));
//var sec=Math.floor(倒计时-(分钟*60*1000));//错误
var sec=数学地板((倒计时-(分钟*60*1000))/1000);//正确

如果(倒计时表示感谢您的时间和努力。但其行为仍然相同。在按钮上单击两次或更多次,然后查看。它对我很好:是的,它很好。比您!很乐意帮助:)