倒數計時為0時處罰函數,有一種情況是當四個倒數都為0時會同時觸發ajax()方法,這種情況我只想觸發一次,該怎麼做?
我試過宣告一個count去計數,超過1就不執行ajax()方法,但是這樣有可能後面的倒數都不執行的,因為不滿足count不超過1的邏輯,該怎麼做呢?
html
<span class="clock">4:00</span>//倒计时是循环的,到0后恢复为4分钟,其他一样
<span class="clock">3:00</span>
<span class="clock">2:00</span>
<span class="clock">1:00</span>
js
$('.clock').each(function(elem,index){
$(this).on('finish',function(){//倒计时为0时触发ajax()方法
ajax();
});
});
伊谢尔伦2017-06-12 09:25:23
定義一個變數作為請求狀態,預設為false,表示目前無請求,請求開始前判斷是否為true,是則說明上次請求未仍在繼續,否則設為true,並開始執行請求,Ajax的complete 方法設定無論成功與否都還原該狀態為false,以便下次請求可用。也就是說,用一個全域或局部變數控制狀態。
漂亮男人2017-06-12 09:25:23
嘗試這樣:
let loading = false
$('.clock').each(function () {
$(this).on('finish', function () {
if (loading) return
loading = true
ajax({
finish: function () {
loading = false
}
})
})
})