0

私のアプリには、#main、#new、#existing の 3 つのページがあります。

#new が読み込まれるたびに、それが #menu または #existing から来たかどうかを検出したいと思います。この情報に応じて、何もしないか、そのフォームに入力する必要があります。

前のページの正しいコマンドとDOMの正しい処理の両方に関して、これをどのように達成できますか?

4

2 に答える 2

2

あなたの # によると、これらのページは dom 要素である必要があります。JavaScriptで変数を使用して、すべてのステップでこれを確認してください。

  • lastPageのような新しい変数を作成します
  • クリックするたびに、HTML5 データ属性のようなdata-fooを使用することを好みます。
  • ナビゲーションに従ってlastPageを変更します。
  • そしてその後、あなたが本当にやりたいことをしてください。

     var lastPage = '';
    
     /* This code from jQuery Mobile, link is below the code. */
    
     // Define a click binding for all anchors in the page
     $( "a" ).on( "click", function( event ){
         // Prevent the usual navigation behavior
         event.preventDefault();
         // Alter the url according to the anchor's href attribute, and
         // store the data-foo attribute information with the url
     $.mobile.navigate( this.attr( "href" ), {
         lastPage: this.attr("data-foo") // store data here
     });
     // Hypothetical content alteration based on the url. E.g, make
     // an AJAX request for JSON data and render a template into the page.
         alterContent( this.attr("href") );
     });
    

HTML の例

<a href="foo.bar" data-foo="main">Main Page</a>
<a href="foo.bar" data-foo="new">New Page</a>
<a href="foo.bar" data-foo="existing">Existing Page</a>

データは何でも作成できます。データだけが重要で、その後はすべてを使用できます。これは単なる HTML5 DOM 属性です。

編集:

ナビゲーションページを確認することをお勧めします。その後、概念をよりよく理解できます。コードソース: http://view.jquerymobile.com/1.3.2/dist/demos/widgets/navigation/

于 2013-09-18T14:41:37.887 に答える
1

pagebeforehideやなどの jQuery-Mobile ページ イベントを利用しpageshowます。

デモ

id移動する前に現在のページを保存します。

var prevPage;

$(document).on('pagebeforehide', function () {
  prevPage = $.mobile.activePage[0].id;
});

宛先ページがアクティブな場合、保存されている前のページを取得しますid

$(document).on('pageshow', function () {
  $(this).find('.destination').text('Previous Page: ' + prevPage);
});
于 2013-09-18T20:37:58.843 に答える