0

jquery mobile と cordova を使用してモバイルアプリを作成しています。json ajax 呼び出しから動的リストビューを正常にロードしました。私の問題は、別のページに移動してから戻るボタンを押すと、元のページのリストビューが読み込まれず、あるべき場所に何もないことです。ページを更新すると、リストビューが表示されます。このページに移動するたびにページ全体を更新するのではなく、リストビューだけを更新するにはどうすればよいですか?

DOM とウィンドウがロードされたとき、および両方の前に、リストビューを更新しようとしました。 $(document).on("pagebeforeshow", "#pagenamehere", function() {}); 無駄に。

具体的には、リストビューを含む 2 つのページがあります。ナビゲーションの手順は次のとおりです。 1. ページ 1 を読み込む: リストビューが表示される 2. ページ 2 に移動する: リストビューが表示されない 3. 戻る: ページ 1 のリストビューが表示される 4. ページ 2 に移動する: リストビューがまだ表示されない 5 . ページ 2 を更新: リストビューは表示されます 6. 戻る: ページ 1 のリストビューは表示されません

このプロセスにより、リストビューは URL が直接入力または再読み込みされたときにのみ読み込まれることが明確になります。何らかの理由で、ページ (異なる html ファイル) 間のナビゲーションがこれを壊します。

4

1 に答える 1

0

2 番目のページの head タグ内にスクリプトがあり、このページが Ajax を介して読み込まれる場合、スクリプトは実行されません。

スクリプトを 2 ページ目の div ( ) 内の head タグから移動する<div data-role="page" id="mySecondPage">か、JS ファイルを作成して最初のページの読み込み時に読み込むようにしてください。関連する例はこちら

jQuery Mobile は Ajax を使用してページ遷移を実行するため、遷移中に jQuery Mobile は応答の body 要素 (具体的には data-role="page" 要素) のコンテンツのみを挿入します。ページのヘッド部分は使用されません (ページ タイトルを除く)。

結論として、ページのヘッドで参照されるスクリプトとスタイルは、ページが Ajax を介して読み込まれる場合には何の効果もありません。ページが HTTP 経由でリクエストされた場合に実行されるため、ページ全体の更新後にリストビューが読み込まれます。

于 2013-05-31T17:24:52.220 に答える