Javascript 我如何防止用户中断';它目前正在运行吗?

Javascript 我如何防止用户中断';它目前正在运行吗?,javascript,Javascript,因此,我有一个函数,每次单击导航链接时都会更改标题的背景颜色。我在该函数中有一个setTimeout函数,在将颜色更改回背景图像之前,该函数会将该颜色保持2秒。我有一个错误,就是我可以一直点击导航按钮,不断改变颜色,这会弄乱时间。重要的是,该颜色在变回图像之前保持2秒不变。然后在超时运行后,用户可以再次更改颜色。我试着用一个布林来检查是否已经有颜色了,但我无法让它工作 const navLinks=document.queryselectoral('.nav links.link'); con

因此,我有一个函数,每次单击导航链接时都会更改标题的背景颜色。我在该函数中有一个setTimeout函数,在将颜色更改回背景图像之前,该函数会将该颜色保持2秒。我有一个错误,就是我可以一直点击导航按钮,不断改变颜色,这会弄乱时间。重要的是,该颜色在变回图像之前保持2秒不变。然后在超时运行后,用户可以再次更改颜色。我试着用一个布林来检查是否已经有颜色了,但我无法让它工作

const navLinks=document.queryselectoral('.nav links.link');
const linksArray=Array.from(document.queryselectoral('.links div'));
const header=document.querySelector('header');
const form=document.querySelector('form');
const hamMenu=document.querySelector(“.ham菜单”);
对于(var i=0;i0;i--){
设j=Math.floor(Math.random()*(i+1));
[linksArray[i].innerHTML,linksArray[j].innerHTML]=[linksArray[j].innerHTML,linksArray[i].innerHTML];
}
}
表格.addEventListener('submit',(e)=>{
e、 预防默认值();
const name=document.querySelector('.name').value;
常量地址=document.querySelector('.address').value;
const city=document.querySelector('.city').value;
const dialog=document.querySelector('.dialog wrap');
const close=document.querySelector('.close');
dialog.style.display='block';
document.querySelector('.dialog name')。innerHTML=name;
document.querySelector('.dialog address')。innerHTML=地址;
document.querySelector('.dialog city')。innerHTML=city;
close.onclick=()=>{
dialog.style.display='none';
document.querySelector(“表单”).reset();
}
})
hamMenu.addEventListener('click',()=>{
const nav=document.querySelector('nav');
导航类列表切换('ham-open');
})
html,正文{
保证金:0;
填充:0;
}
身体{
字体系列:“Verdana”;
框大小:边框框;
颜色:#63889b;
}
/** {
轮廓:1px纯红;
}*/
/*------导航-----*/
导航{
显示器:flex;
证明内容:之间的空间;
字体大小:1.8rem;
填充:25px0;
位置:固定;
背景色:#fff;
宽度:100%;
排名:0;
左:0;
右:0;
z指数:10;
盒子阴影:0px 0px 70px rgb(99,99,99,0.5);
}
.brand、.nav链接{
显示器:flex;
对齐项目:居中;
}
.品牌{
左缘:6%;
位置:相对位置;
z指数:5;
}
.标志{
最大宽度:70像素;
最大高度:45像素;
右边距:25px;
}
.导航链接{
位置:相对位置;
保证金权利:6%;
}
.导航链接.链接{
文本转换:大写;
右边距:16px;
光标:指针;
过渡:所有。2轻松;
}
.导航链接.链接:悬停{
颜色:#014263;
}
.火腿菜单{
显示:无;
}
/*-----标题-----*/
标题{
背景图像:url(img/canada.jpeg);
背景位置:中心;
背景尺寸:封面;
高度:80vh;
边缘顶端:92px;
}
.标题信息{
显示:内联块;
颜色:#fff;
字体大小:1.8rem;
背景色:rgba(0,0,0,0.6);
填充:35px;
左边距:10%;
利润率最高:4%;
}
标题p{
保证金:0;
填充:0;
}
标题p:第一个孩子{
边缘底部:25px;
}
/*-----主要-----*/
主要{
显示器:flex;
背景色:#fff;
}
上校{
弹性基准:33.33%;
填充:50px 0 40px 0;
}
上校{
宽度:65%;
字体大小:1.25rem;
文本对齐:居中;
左边距:自动;
右边距:自动;
}
上校{
显示:块;
保证金:0自动;
}
.col-3 img{
宽度:280px;
高度:155px;
}
.col-3 img、.col-3 h3、.col-3 p{
位置:相对位置;
顶部:-8px;
}
.col-2 img、.col-2 h3、.col-2 p{
位置:相对位置;
顶部:30px;
}
.col-1{
左缘:7%;
}
上校3{
保证金权利:7%;
}
h3{
文本对齐:居中;
}
/*------页脚-----*/
页脚{
字体系列:“Helvetica”;
背景色:#63889b;
显示器:flex;
证明内容:之间的空间;
颜色:#fff;
填充:30px 100px 30px 100px;
}
.内部链接h4{
文字装饰:下划线;
字体大小:1.5rem;
文本对齐:居中;
边际上限:0;
边缘底部:8px;
颜色:#fff;
}
.links分区{
字号:1.2rem;
边际:2px0;
光标:指针;
显示器:flex;
弯曲方向:立柱;
}
.表格包装{
显示器:flex;
对齐项目:柔性端;
弹性基准:50%;
}
形式{
显示器:flex;
弯曲方向:立柱;
宽度:100%;
}
输入{
边界:无;
大纲:无;
字体大小:1.6rem;
}
标签{
字体大小:1.3rem;
填充:3px0;
}
钮扣{
边缘顶部:20px;
边框:1px实心#fff;
宽度:50%;
字体大小:1.3rem;
背景色:#4678c9;
自对准:柔性端;
颜色:#fff;
填充:4px30px;
}
.对话框换行{
背景色:rgba(0,0,0,0.7);
位置:固定;
宽度:100%;
身高:100%;
顶部:0px;
左:0px;
z指数:1000;
显示:无;
}
对话{
位置:固定;
排名:0;
左:0;
右:0;
底部:0;
宽度:500px;
边界:无;
显示器:flex;
弯曲方向:立柱;
调整内容:灵活启动;
}
对话组{
字体大小:1.4rem;
颜色:#fff;
利润率:10px0;
外形:1px实心#63889b;
}
对话分区:第一个孩子{
边际上限:0px;
}
对话框.标签{
背景色:#63889b;
填充:7px;
显示:内联块;
宽度:30%;
保证金:0;
文本对齐:居中;
}
对话信息{
显示:内联块;
帕迪
var switch1 = 0;    
if (switch1 == 1) return; 
switch1 = 1;
setTimeout(function() {
    header.style.backgroundImage = 'url(img/canada.jpeg)';
    switch1 = 0;
  }, 2000);