Javascript 设置间隔计数器问题
我有这个小剧本。我的问题是,当我点击开始按钮时,计数正常开始,但如果我再次点击它,计数器开始表现出奇怪的行为。如何避免此问题并在每次单击按钮时重新启动计数器Javascript 设置间隔计数器问题,javascript,setinterval,Javascript,Setinterval,我有这个小剧本。我的问题是,当我点击开始按钮时,计数正常开始,但如果我再次点击它,计数器开始表现出奇怪的行为。如何避免此问题并在每次单击按钮时重新启动计数器 $(“.c1”)。单击(函数(e){ 设a=0; setInterval(function(){$(“#timer”).text(a);a++},500); }) .card{font size:25px;} 启动计时器 0之所以“行为怪异”,是因为您正在启动一个秒的独立计时器,所以现在两个计时器都在运行,每个计时器都在元素中放置自
$(“.c1”)。单击(函数(e){
设a=0;
setInterval(function(){$(“#timer”).text(a);a++},500);
})
.card{font size:25px;}
启动计时器
0
之所以“行为怪异”,是因为您正在启动一个秒的独立计时器,所以现在两个计时器都在运行,每个计时器都在元素中放置自己的a
。您需要记住上一个计时器的句柄(setInterval的返回值)并取消它(通过clearInterval
):
let handle=0;
$(“.c1”)。单击(函数(e){
设a=0;
清除间隔(句柄)
handle=setInterval(函数(){
$(“#计时器”).text(a);
a++;
}, 500);
})
.card{
字体大小:25px;
}
启动计时器
0
之所以“行为怪异”,是因为您正在启动一个秒的独立计时器,所以现在两个计时器都在运行,每个计时器都在元素中放置自己的a
。您需要记住上一个计时器的句柄(setInterval的返回值)并取消它(通过clearInterval
):
let handle=0;
$(“.c1”)。单击(函数(e){
设a=0;
清除间隔(句柄)
handle=setInterval(函数(){
$(“#计时器”).text(a);
a++;
}, 500);
})
.card{
字体大小:25px;
}
启动计时器
0
在开始新的间隔之前,您应该重置间隔
let间隔;
$(“.c1”)。单击(函数(e){
设a=0;
if(interval)clearTimeout(interval);
interval=setInterval(函数(){$(“#计时器”).text(a);a++},500);
})
.card{font size:25px;}
启动计时器
0
在开始新的间隔之前,您应该重置间隔
let间隔;
$(“.c1”)。单击(函数(e){
设a=0;
if(interval)clearTimeout(interval);
interval=setInterval(函数(){$(“#计时器”).text(a);a++},500);
})
.card{font size:25px;}
启动计时器
0
在开始新的间隔之前,必须清除间隔。否则,有两件事(或更多)在增加a
要清除间隔,只需对setInterval
的结果调用clearInterval
let间隔;
$(“.c1”)。单击(函数(e){
设a=0;
间隔时间;
interval=setInterval(函数(){$(“#计时器”).text(a);a++},500);
});代码>
.card{font size:25px;}
启动计时器
0
在开始新的间隔之前,必须清除间隔。否则,有两件事(或更多)在增加a
要清除间隔,只需对setInterval
的结果调用clearInterval
let间隔;
$(“.c1”)。单击(函数(e){
设a=0;
间隔时间;
interval=setInterval(函数(){$(“#计时器”).text(a);a++},500);
});代码>
.card{font size:25px;}
启动计时器
0
每次单击时,您将启动另一个设置间隔
解决方案
当必须从头开始计数时-使用clearInterval
要禁用操作,如果我们想启动计数器一次-使用.attr(“disabled”,true)代码>
//1
变量时间=0
$(“.c1”)。单击(函数(e){
clearInterval(时间);//如果运行间隔,则停止
设a=0;
time=setInterval(function(){$(“#timer”).text(a);a++},500);
})
//2
$(“.c2”)。单击(函数(e){
设a=0;
setInterval(function(){$(“#timer2”).text(a);a++},500);
$(“.c2”).attr(“禁用”,真);
})
.card{font size:25px;}
启动计时器1
0
启动计时器2
0
每次单击时,您将启动另一个设置间隔
解决方案
当必须从头开始计数时-使用clearInterval
要禁用操作,如果我们想启动计数器一次-使用.attr(“disabled”,true)代码>
//1
变量时间=0
$(“.c1”)。单击(函数(e){
clearInterval(时间);//如果运行间隔,则停止
设a=0;
time=setInterval(function(){$(“#timer”).text(a);a++},500);
})
//2
$(“.c2”)。单击(函数(e){
设a=0;
setInterval(function(){$(“#timer2”).text(a);a++},500);
$(“.c2”).attr(“禁用”,真);
})
.card{font size:25px;}
启动计时器1
0
启动计时器2
0
谢谢你的回答好的先生。谢谢你的回答好的先生。