2017-04-15 3 views
0

JQueryでCountDownクロックを終了しようとしています。JQuery:カウントダウンがゼロになったときのページを再読み込みします。

1 - まず、私はコンテナをクレタ:

var iDiv = document.createElement('div'); 
iDiv.id = 'countdown'; 
iDiv.className = 'countdown'; 

カウントダウンが0に達したときにEvrythingは、これは私が持っているものです私はリロードするページを作成するふり最後の部分を除いて正常に動作しています2 - 今、クロック

// Countdown Clock JQuery 
function startTimer(duration, display) { 
    var timer = duration, minutes, seconds; 
    setInterval(function() { 
     minutes = parseInt(timer/60, 10); 
     seconds = parseInt(timer % 60, 10); 
     minutes = minutes < 10 ? "0" + minutes : minutes; 
     seconds = seconds < 10 ? "0" + seconds : seconds; 
     display.text(minutes + ":" + seconds); 
     if (--timer < 0) { 
      timer = duration; 
     } 
    }, 1000); 
} 
// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
      location.reload(); 
     } 
}); 

まあ、すべてが正常に動作しますが、この最後のビット:

if (fiveMinutes === 0) { 
    location.reload(); 
    } 

ページはゼロに達するカウントダウンでリロードされません。何か案は?

答えて

0

あなたはsetTimeoutメソッドでそれをリロードすることができます

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    setTimeout(function(){ location.reload() }, fiveMinutes*1000); 
}); 
+0

ありがとう、それは私が到達した解決策よりもはるかにエレガントな方法でした。カウンターが0(00:00)に達するのを聞いているもう1人のvarを追加しました。それにもかかわらず、それはちょうど醜いパッチでした。 varが期限切れ= window.setInterval(関数(){ ($は、(あれば)の長さ> 0){ document.location.reload(TRUE); } "*:00' ):('00を含みます"。 }、1000); –

+0

あなたの問題を解決する@ KimJong-un? –

0

If条件は、スクリプトの実行を最初の時に、一度だけ実行されます。その時点で、fiveMinutes変数は60 * 5(300)であり、=== 0条件と一致しません。

// JQuery function 
jQuery(function ($) { 
    var fiveMinutes = 60 * 5, 
     display = $('#countdown'); 
    startTimer(fiveMinutes, display); 
    if (fiveMinutes === 0) { 
     location.reload(); 
    } 
}); 

タイマーが「0」になっていることを確認する必要があります。

setInterval(function() { 
    minutes = parseInt(timer/60, 10); 
    seconds = parseInt(timer % 60, 10); 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
    display.text(minutes + ":" + seconds); 
    if (--timer < 0) { 
     timer = duration; 
    } 
}, 1000); 

タイマ値が更新されるために機能が実行されるように機能します。

うまくいけば、これが役に立ちます。

関連する問題