0

jquery プラグインのカウントダウンを探していますが、ページが更新された場合でも conter を保持します。60分までカウントダウンタイマーを表示したいアンケートのアプリを作っています。私のアプリケーションでは、ユーザーがログインして質問への回答を開始すると、彼は 1 つずつ質問に答えます。質問はページごとに 1 つの質問です。したがって、次の質問ページが更新された場合。したがって、ユーザーが次の質問に答えたい場合、カウントダウン タイマーはデフォルトにリセットされます。今、私はこのhttp://keith-wood.name/countdown.htmlのjqueryプラグインを使用しています

コード付き:

   $(function () {
        var d = new Date();
        d = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()+59, 59);
        $('#defaultCountdown').countdown({until: d, format: 'MS'});
    });

だから私の質問は、ページがリセットされずにタイマーがデフォルトに更新された場合、プラグインのカウントダウンタイマーがありますか。

ありがとう。

4

2 に答える 2

3

期限を Cookie に保存し、リクエストごとにその Cookie から値をフェッチすることでそれを行うことができます。コードはもう少し複雑になりますが、問題はありません。jQuery Cookie プラグインが必要です。使用方法については、こちらを参照してください。

これが私が思いついたものです。の値を変更して、withCookieリクエスト間の期限を保存する場合と保存しない場合の違いを確認できます (リロードする代わりに [実行] をクリックします。実際には同じことを行います)。あなたが使用しているカウントダウン プラグインをホストしている CDN が見つからなかったので、締め切りを印刷しました。 jsFiddle (秒を除く) のように締め切りの日付変数dを呼び出してから、

$('#defaultCountdown').countdown({until: d, format: 'MS'});
于 2013-03-31T12:43:40.117 に答える
0

最初の日付を保存しlocalStorage、ページが更新されたらそこから復元を試みることができます。質問に回答した後、日付を削除できますlocalStorage

$(function () {
  var d = localStorage.getItem('date');
  if(!d) {
    d = (new Date()).getTime() + 3599000;
    localStorage.setItem('date', d);
  } else {
    d = parseInt(d);
  }
  $('#defaultCountdown').countdown({until: new Date(d), format: 'MS'});
});

function goNext() {
  localStorage.removeItem('date');
  // Go to next question
  ...
}

作業例: http://jsbin.com/oxovih/2/edit

于 2013-03-31T12:44:48.270 に答える