function errBlink()
{
var check=true;
var borColor=this.style.borderColor;
var bxShad=this.style.boxShadow;
var blink=setInterval(blinker(this),300);
setTimeout(resetBox(this),2000);
function resetBox(ele)
{
clearInterval(blink);
ele.style.borderColor=borColor;
ele.style.boxShadow=bxShad;
}
function blinker(ele)
{
if(check)
{
ele.style.borderColor='red';
ele.style.boxShadow='0px 0px 5px 0px rgba(255,0,13,1)';
check=false'
}else
{
ele.style.borderColor='white';
ele.style.boxShadow='0px 0px 5px 0px rgba(00,00,00,1)';
check=true;
}
}
}
我想停止监听keydown事件,只有当这段代码正在运行,因为在setinterval期间,如果任何键被按下,这重置这段代码再次运行,似乎是队列,如果一直按太长时间
与其禁用可能干扰您网站上其他功能的keydown事件,我建议使用另一个标志(类似于您对check
所做的)。
例如,你可以设置一个标志isBlinking
,当你的函数开始时设置为true,当你的函数结束时设置为false,并且只运行你的代码if(!isBlinking)
。