在代码运行时停止事件侦听器


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)

最新更新