2017-02-25 123 views
1

我有一个脚本,每10秒(但技术上11)为用户AJAX请求。我有一个从10到0的简单倒计时,然后一次又一次。JS <(小于)运算符失败

countit功能是每个AJAX请求后调用重启

这里是我的代码:

function countit() { 
    var count = 10; 
    loading = setInterval(function() { 
    $(box).val("Will automatically check in " + count + "second(s), please DO NOT refresh the page yourself."); 
    count--; 
    if (count <= 0) { 
     clearInterval(loading); 
    } 

    }, 1000); 
} 

的代码工作正常除,如果你离开页面,回来,倒计时进行到负面,并没有停止。以下是图像:

enter image description here

我不能肯定这是否与代码或JS但计数器问题犯规走低于0时为用户停留在页面上。

+0

你叫'countit'多少次?因为如果你多次调用它,只有最后一个会因为'loading'是一个全局变量而停止!或者在其他地方更改'loading'的值也会导致问题! –

+0

为了安全改变这个:'loading = setIn ...'这个:'var loading = setIn ...'! –

+0

这不会发生在我的控制台上。它停在1秒消息 –

回答

1

由于易卜拉欣&克里斯说:

添加间隔的VAR盈因为没有它,变量是全球性的。

function countit() { 
    var count = 10; 
    var loading = setInterval(function() { 
     $(box).val("Will automatically check in " + count + "second(s), please DO NOT refresh the page yourself."); 
     count--; 
     if (count <= 0) { 
      clearInterval(loading); 
     } 
    }, 1000); 
}