我有一個電子商務網站,最多20分鐘的籃子時間。我在JS寫了一個簡單的計數器顯示像這樣的timeleft:jQuery Mobile和一個js計數器執行兩次
function basketCounter() {
var minutes = Math.floor(count/60);
var sec = count - minutes * 60;
if (sec < 10) {
sec = '0' + sec;
}
console.log("hello");
$(".temps_restant").html("reste: " + minutes + " : " + sec);
$("#tunnel_panier_temps").html("" + minutes);
if (count == 0) {
window.location = '{{serverRequestUri}}flush_panier/1/';
}
count--;
}
和身體:
var count = {{panierTmp.lifetime - now}};
$(document).bind('pageinit', function() {
$("img.lazy").unveil();
if (count > 0) {
setInterval('basketCounter()', 1000);
}
});
當我在網站上瀏覽沒有Ajax它工作正常。 但是當我試圖在JQM中導航ajax時,計數器每次都會重新執行並加速2秒2秒,如果我返回兩次,它將會以3秒爲3秒。
我可以「找不到任何解決方案..
爲什麼我的頁面init錯了? 是否有一個事件在我每次返回並返回時都不會被觸發,而只會返回一次? –
我想我做錯了什麼,這是我的頁面init的主要錯誤,我的ajax調用正在複製我的頁面內容 –
@ user2695901'在初始化發生後,觸發頁面被初始化。我們建議綁定到這個事件而不是DOM ready(),因爲無論頁面是直接加載的還是內容被拉到另一個頁面作爲Ajax導航系統的一部分,這都可以工作。簡而言之,當加載包含此事件的頁面時,它總是會觸發。檢查你的頁面加載,你應該只檢索內容而不是整個頁面。但仍然使用區間變量檢查來確保計數是唯一的。你應該使用日期來檢查而不是計數器imo – TecHunter