0

私の jQuery Mobile には、index.html と test.html の 2 つのページがあります。<p>クラスを持つインデックスページにタグがあるため、タグ<p>が私のjavascriptでクリックされると、test.htmlをロードしたいと考えています。

しかし jQuery Mobile では、インデックス ページがテスト ページをロードするとき、それは DOM にはありません。したがって、テスト ページに移動して test.html の div の内容を置き換えるには、最初に DOM にロードする必要があります。だからここに私がやっていることがあります:

try2 がクリックされると、ページをロードして DOM に取り込み、div を新しい html に置き換えて、ページに変更します。div の html は変更されません。

$('.try2')
  .click(function(){
    $.mobile.loadPage( 'test.html', { showLoadMsg: false } );
    $('#mytest').html('i am here now').fadeIn('slow');
    $.mobile.changePage( "test.html", { transition: "slideup"} );
  });
4

1 に答える 1

0

2 番目のページを指すリンクの data-prefetch 属性を使用して、ページをプリフェッチします。ドキュメント: http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html

次に、pageinit または pageshow イベントにバインドして、2 番目のページがビューに遷移する前に div を更新します。

イベント ハンドラーの最初の 2 行が非同期であるため、現在のコードは機能しません。これらを使用するには、非同期関数のコールバック関数を使用する必要があります。

アップデート

ページを事前にキャッシュしたいが、ページへの直接リンクがない場合は、いつでもダミー リンクを作成して非表示にすることができます。

<a data-precache href="page2.html" style="display:none;"></a>
于 2012-07-08T16:30:46.713 に答える