2012-01-14 17 views
0

私は今日の大部分のカウントダウンに取り組んできましたが、今はループしています。 forループがなければ、すべて正常に動作し、カウントダウンは0に達してリロードされますが、forループでは正しくカウントダウンされず、数字がスキップされます。私がここで遂行したいのは、タイマーカウントを完全にダウンさせることです.3回カウントダウンした後は完全に停止します。私はここで間違って何をしていますか?jqueryを使ってループする方法

var number = 25; 
var i; 

function countdown() { 
    $('#display').html("Redirecting in " + number + " second(s)."); 
    for (i = 0; i < 3; ++i) { 
     number--; 
     if (number < 0) { 
      window.location.reload(); 
      number = 0; 
     } 
    } 
    setTimeout(countdown, 1000); 
} 

$(document).ready(function() { 
    countdown(); 
}); 
+0

ループなしで動作する場合は、まだ使用していますか? –

+0

あなたはループ内で 'number 'を4回減らします - もちろん数字をスキップします。また、リロードすると、プロセス全体が再び開始されます.JSを再起動するたびに、Cookieや何かのように永続的な「合計」カウントを保存しない限り、 –

+0

'for'ループで' number'を4回減らしています。これを 'for(i = 0; i <1; ++ i){'に変更すると動作します。しかし、その場合のループのポイントは何ですか? –

答えて

1

私は25から3回カウントダウンしてから、ページをリロードします。私は正しい?

var number = 25; 
var i = 0; 

function countdown() { 

    $('#display').html("Redirecting in " + number + " second(s)."); 

    number--; 

    if (number == 0) { 

     number = 25; 
     i++; 

    } 

    if (i == 3) { 

     window.location.reload(); 

    } 

    setTimeout(countdown, 1000); 

} 

$(document).ready(function() { 
    countdown(); 
}); 
+0

カウントダウンして3回リロードするそれは可能です。カウントダウンしてiframeをリロードすることはできません。 – bammab

+0

これを実行するにはいくつかの方法があります。私は自分自身で問題を解決し、PHPで 'session'を設定すると思います。次に、PHPに 'i'値を設定する小さなJSコードを出力させます。セッション自体は明らかに各ページ要求を増加させるでしょう。手動リロードでも 'i'値が増加します。 – Jeffrey

関連する問題