2017-02-25 113 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); 
}