Javascript 禁用累积间隔点的多次单击

Javascript 禁用累积间隔点的多次单击,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,我正在构建一个具有暂停和恢复功能的计时器。我发现用户可以在多次单击计时器时设置多个间隔 如何防止用户设置多个间隔 我尝试插入($('.clock))。设置间隔后,关闭(“单击”),但无法确定如何继续。我想我可以做一个语句pause=true,但不确定如何在代码中使用它 让currentMins=10 让currentCount=10*60 让暂停=真 $(文档).ready(函数(){ //---设定时间--// $('select')。在('change',function()上{ 常数时间对

我正在构建一个具有暂停和恢复功能的计时器。我发现用户可以在多次单击计时器时设置多个间隔

如何防止用户设置多个间隔

我尝试插入
($('.clock))。设置间隔后,关闭(“单击”)
,但无法确定如何继续。我想我可以做一个语句
pause=true
,但不确定如何在代码中使用它

让currentMins=10
让currentCount=10*60
让暂停=真
$(文档).ready(函数(){
//---设定时间--//
$('select')。在('change',function()上{
常数时间对={
帕帕德尔:7,
佩恩:10,
法法尔:11,
布卡蒂尼:8,
天使头发:4,
格诺奇:1,
奥列克谢特:10,
刚刚煮熟的鸡蛋:11
}
const selected=this.value
for(让密钥进入时间对){
让toPrint=''
if(已选择.split(“”).join(“”).toLowerCase()==键){
toPrint=时间对[键]
$('#分钟').html(toPrint)
$('.clock').html(toPrint+':00')
currentMins=toPrint
currentCount=时间对[键]*60
log('集合上的当前计数:',currentCount)
} 
}
})
//---更新时钟--//
//基本增量和减量设置
$('.decrement')。单击(函数(){
如果((当前分钟数)>1){
currentMins-=1
当前计数-=60
$('#分钟').html(当前分钟)
$('.clock').html(currentMins+':00')
log(“当前分钟和递减计数:”,当前分钟,当前计数)
}
})
$('.increment')。单击(函数(){

如果(currentMins,则可以使用标志变量:

let started = false
和一个有条件的
返回
语句:

if (started && !pause) {
  return;
} else {
  started = true;
}
它所做的只是在单击时钟时,检查
已启动
是否为
。如果是,则计时器已启用,因此它只是从功能中返回(除非暂停)。如果
started
的值为
false
,则计时器开始,标志变量设置为
true

请参见此工作示例:

让currentMins=10
让currentCount=10*60
让暂停=真
让开始=错误
$(文档).ready(函数(){
//---设定时间--//
$('select')。在('change',function()上{
常数时间对={
帕帕德尔:7,
佩恩:10,
法法尔:11,
布卡蒂尼:8,
天使头发:4,
格诺奇:1,
奥列克谢特:10,
刚刚煮熟的鸡蛋:11
}
const selected=this.value
for(让密钥进入时间对){
让toPrint=''
if(已选择.split(“”).join(“”).toLowerCase()==键){
toPrint=时间对[键]
$('#分钟').html(toPrint)
$('.clock').html(toPrint+':00')
currentMins=toPrint
currentCount=时间对[键]*60
log('集合上的当前计数:',currentCount)
}
}
如果(已选择。indexOf('无缝')!=-1){
打开窗户http://seamless.com“,”空白“)
}
})
//---更新时钟--//
//基本增量和减量设置
$('.decrement')。单击(函数(){
如果((当前分钟数)>1){
currentMins-=1
当前计数-=60
$('#分钟').html(当前分钟)
$('.clock').html(currentMins+':00')
log(“当前分钟和递减计数:”,当前分钟,当前计数)
}
})
$('.increment')。单击(函数(){
如果(当前分钟<100){
currentMins+=1
当前计数+=60
$('#分钟').html(当前分钟)
$('.clock').html(currentMins+':00')
log(“当前分钟和增量中的计数:”,当前分钟,当前计数)
}
})
$('.clock')。单击(函数(){
如果(启动和暂停){
返回;
}否则{
开始=真;
}
log(“起始时钟div中的当前currentCount:”,currentCount)
//间隔设置
const interval=window.setInterval(函数(){
如果(currentCount==0){
暂停=正确
$('.clock').html('Buon appetito!')
}否则{
log(“clock div:,currentCount中else子句中的currentCount”)
暂停=错误
电流计数--
让分钟数=数学楼层(当前计数/60)
让秒数=当前计数-分钟数*60
$('.clock').html(分钟数+':'+('0'+秒).slice(-2))
}
$('.pause')。单击(函数(){
暂停=正确;
清除间隔(间隔)
})
}, 1000)
$('select')。在('change',function()上{
暂停=正确;
清除间隔(间隔)
})
})
})//结束jquery
正文{
利润率:50像素;
字体系列:“鸬鹚加拉蒙”,衬线;
颜色:番茄;
}
主要{
证明内容:中心;
}
h1{
字体大小:40px;
文本对齐:居中;
}
.电网{
显示:网格;
栅隙:10px;
网格模板列:[col1 start]130px[col2 start]130px[col3 start]140px[col3 end];
网格模板行:[row1 start]120px[row2 start]120px[row2 end];
背景色:#fff;
颜色:番茄;
证明内容:中心;
}
.盒子{
颜色:番茄;
填充:30px;
字体大小:150%;
边框:1个实心番茄;
}
.食物{
网格列:col1 start/col3 start;
网格行:行1开始;
}
.钟{
网格列:col3 start;
网格行:行1开始/行2结束;
显示器:flex;
证明内容:中心;
对齐项目:居中;
}
.时钟:悬停{
颜色:#ffd700;
字体大小:25px;
光标:指针;
}
.设置计时器{
网格列:col1启动;
网格行:第2行开始;
显示器:flex;
弯曲方向:行;
柔性包装:nowrap;
证明内容:中心;
对齐项目:居中;
对齐内容:拉伸;
}
.settimer div{
保证金:5px;
}
#分钟{
对齐项目:居中;
字体大小:20px;
}
.图标{
字体大小:15px;
}
.图标:悬停{
颜色:#ffd700;
光标:指针;
字号:18px;
}
.暂停{
网格列:col2 start;
网格行:第2行开始;
字体大小:20px;
显示器:flex;
F