如何通过单击按钮停止javascript倒计时?
我有一个开始按钮用于倒计时,但我希望它在我单击停止按钮时停止 我的html代码:如何通过单击按钮停止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) {
<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;
}
向下滚动到“如何停止执行?”我想在它运行时停止它我收到以下错误:未捕获引用错误:未定义间隔