0

したがって、次のコードを使用して、さまざまな JQM ページの動的コンテンツを初期化していますが、JQM ページの初期化に使用するのに最適な方法である pageinit は、それ自体ではクリーンアップされません。

例) 動的なフッターがあります。今日の日付を出力します。私の初期化コードには、次のものがあります。

    $(document).on('pageinit', '#dashboardPage', function() {

      var currentTime = new Date()
      var month = currentTime.getMonth() + 1
      var day = currentTime.getDate()
      var year = currentTime.getFullYear()
      var fullDate = month + "-" + day + "-" + year;

      $('#footer').append('<p>  Today: ' + fullDate + '</p>');

    });

問題:このページから移動して戻るたびに、pageinit が再び起動し、ページに別のフッターが追加されます。掃除は私の仕事ですか?JQM は pageinit を何度も起動しないことを知っているべきではありませんか? これについてもっと良い方法はありますか?

4

3 に答える 3

2

私見では、OPの本当の問題は、ページに戻るたびにpageinitが起動することです。これはajaxでロードされたページで発生するようですが、チェーンの「最初の」ページでは発生しません。

Page one --(ajax)-->Page two--(ajax)-->Page three--(ajax)-->Back to page two

このシーケンスでは、2ページ目に戻るたびに2ページ目のpageinitが起動されます。

を指定してこの動作を回避しようとしましdata-dom-cache="true"たが、役に立ちませんでした。私見これはJQMフレームワークのバグです。

于 2012-10-25T12:11:31.070 に答える
1

一緒に削除して追加するのはどうですか?

  $('#footer').remove('p').append('<p>  Today: ' + fullDate + '</p>');
于 2012-09-05T06:06:38.500 に答える
0

日付専用のスパンを作成し、このコンテンツのみを更新する必要があります。たとえば<p> Today: <span id="dateSpan"></span></p>、フッターに追加したり、コードをわずかに変更したりします。

$(document).on('pageinit', '#dashboardPage', function() {

  var currentTime = new Date()
  var month = currentTime.getMonth() + 1
  var day = currentTime.getDate()
  var year = currentTime.getFullYear()
  var fullDate = month + "-" + day + "-" + year;

  $('#dateSpan').html(fullDate);

});
于 2012-09-05T14:19:17.183 に答える