Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过单击按钮停止javascript倒计时?_Javascript_Jquery_Html - Fatal编程技术网

如何通过单击按钮停止javascript倒计时?

如何通过单击按钮停止javascript倒计时?,javascript,jquery,html,Javascript,Jquery,Html,我有一个开始按钮用于倒计时,但我希望它在我单击停止按钮时停止 我的html代码: <div> <span id="timer">25:00</span> </div> 25:00 开始 停止 我的js代码: $('#startTimerButton').click(function starter() { function startTimer(duration, display) {

我有一个开始按钮用于倒计时,但我希望它在我单击停止按钮时停止

我的html代码:

<div>
  <span id="timer">25:00</span>
</div> 

25:00
开始 停止

我的js代码:

$('#startTimerButton').click(function starter() {

             function startTimer(duration, display) {
                var timer = duration, minutes, seconds;
                setInterval(function () {
                    minutes = parseInt(timer / 60, 10);
                    seconds = parseInt(timer % 60, 10);

                    minutes = minutes < 10 ? "0" + minutes : minutes;
                    seconds = seconds < 10 ? "0" + seconds : seconds;

                    display.text(minutes + ":" + seconds);

                    if (--timer < 0) {
                        timer = duration;
                    }

                }, 1000);
            }

            jQuery(function ($) {
                var fiveMinutes = 60 * 25,
                    display = $('#timer');
                startTimer(fiveMinutes, display);
            }); 


    });
$('startTimerButton')。单击(函数启动程序(){
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
显示文本(分钟+“:”+秒);
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}
jQuery(函数($){
变量五分钟=60*25,
显示=$(“#计时器”);
startTimer(五分钟,显示);
}); 
});

使用如下变量连接函数:(尝试不使用“var”)

并使用此功能停止计时器:

$("#stop_btn").click(function(){
    clearInterval(my_timer);
});
function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    timeInterval = setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.text(minutes + ":" + seconds);

        if (--timer < 0) {
            timer = duration;
        }

    }, 1000);
    return timeInterval;
}

按下按钮时,需要清除间隔。假设要停止的按钮是
#stopTimerButton
。然后,将js更改为:

$('#startTimerButton').click(function starter() {

         function startTimer(duration, display) {
            var timer = duration, minutes, seconds;
            interval = setInterval(function () {
                minutes = parseInt(timer / 60, 10);
                seconds = parseInt(timer % 60, 10);

                minutes = minutes < 10 ? "0" + minutes : minutes;
                seconds = seconds < 10 ? "0" + seconds : seconds;

                display.text(minutes + ":" + seconds);

                if (--timer < 0) {
                    timer = duration;
                }

            }, 1000);
        }

        jQuery(function ($) {
            var fiveMinutes = 60 * 25,
                display = $('#timer');
            startTimer(fiveMinutes, display);
        }); 


});
$('#stopTimerButton').click(function() {
    clearInterval(interval);
});
$('startTimerButton')。单击(函数启动程序(){
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
间隔=设置间隔(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
显示文本(分钟+“:”+秒);
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}
jQuery(函数($){
变量五分钟=60*25,
显示=$(“#计时器”);
startTimer(五分钟,显示);
}); 
});
$('#stopTimerButton')。单击(函数(){
间隔时间;
});

您需要使用函数clearInterval来停止计时器

$(document).ready(function() {
var handler;

$('#stopTimerButton').click(function () {
    if (handler) {
        clearInterval(handler);
    }
});

$('#startTimerButton').click(function starter() {

             function startTimer(duration, display) {
                var timer = duration, minutes, seconds;
                handler = setInterval(function () {
                    minutes = parseInt(timer / 60, 10);
                    seconds = parseInt(timer % 60, 10);

                    minutes = minutes < 10 ? "0" + minutes : minutes;
                    seconds = seconds < 10 ? "0" + seconds : seconds;

                    display.text(minutes + ":" + seconds);

                    if (--timer < 0) {
                        timer = duration;
                    }

                }, 1000);
            }

            jQuery(function ($) {
                var fiveMinutes = 60 * 25,
                    display = $('#timer');
                startTimer(fiveMinutes, display);
            });
    });
});
$(文档).ready(函数(){
var处理器;
$('#stopTimerButton')。单击(函数(){
if(处理程序){
clearInterval(处理器);
}
});
$(“#开始按钮”)。单击(函数启动程序(){
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
handler=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
显示文本(分钟+“:”+秒);
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}
jQuery(函数($){
变量五分钟=60*25,
显示=$(“#计时器”);
startTimer(五分钟,显示);
});
});
});

首先,尝试在函数中返回间隔:

$("#stop_btn").click(function(){
    clearInterval(my_timer);
});
function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    timeInterval = setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.text(minutes + ":" + seconds);

        if (--timer < 0) {
            timer = duration;
        }

    }, 1000);
    return timeInterval;
}

向下滚动到“如何停止执行?”我想在它运行时停止它我收到以下错误:未捕获引用错误:未定义间隔