3

jquery モバイル アプリの履歴スタックを逆方向に移動する際に問題があります。

基本的に、次の 3 つのページがあります。

  1. 検索フォーム (ページ ロールを持つ事前構築済みの div。限定ナビゲーション: 結果リスト ページのみ)
  2. 結果リスト (ページロールを持つ事前構築済みの div、ajax 経由で追加された結果情報。任意のレコードページへのナビゲーションが可能)
  3. 記録ページ (完全に動的に構築されます。関連する記録ページへの無制限のナビゲーションの可能性)

レコード ページは、テーブルと record_id に基づいて動的に作成され、新しいレコードが選択されるたびにドキュメントの本文に追加されます。

var page_id = table + record_id;
var pg_html = newPageHTML(page_id );
$('body').append(pg_html);
$.mobile.changePage($("#" + page_id));

レコードに進んで「戻る」ボタン (data-rel="back") を押した後、別のレコードであれ結果リストであれ、前のページに戻ることが期待される動作ですが、ずっと送られてきます。検索フォームに戻ります。これは、 data-dom-cache="true" を使用する場合と使用しない場合に発生します。

これがなぜなのかについての説明はありますか?助けてくれてありがとう。

4

2 に答える 2

2

DOM で前のページの ID を取得し、そこに移動します。

ワーキングデモ

$('.selector').on('click', function() {

 // get the ID of the previous page
 var previous = '#' + $.mobile.activePage.prev('div[data-role="page"]')[0].id;

 // move to previous page with reverse effect
 $.mobile.changePage(previous, {
  transition: 'slide',
  reverse: true
 });
});
于 2013-04-04T21:33:02.117 に答える