4

Web アプリケーションに問題があります。ブラウザで「マルチページ テンプレート」ページを開くと、DOM に両方のページが表示されますが、アクティブなのは 1 つだけです。これは論理的であり、それについては何も言えません。

しかし、ajaxトランジションを使用して前のページから「マルチページテンプレート」ページをロードすると、DOMに前のページが表示されます(論理的:ユーザーが戻りたい場合にこのページを再度ロードしないようにするため)。 「マルチページ テンプレート」ページにあるページが読み込まれます (最初のページ)。

javascript のすべてのプロセスで間違いを犯したと思いました: ID の競合を避けるために、読み込み後に非アクティブなページを自動的に削除しますが、自動ページ削除機能を使用しないことで、このページの特定のケースを書きました。そして、ブラウザで「マルチページテンプレート」を開くと完全に機能します(両方のページがDOMにあり、「特定のケース」のコードが機能します)

だから私はドキュメントページに行きました: http://jquerymobile.com/demos/1.0/docs/pages/page-anatomy.html

「マルチページテンプレート構造」ボタンを右クリックし、「マルチページテンプレートを表示」>要素を検査すると、コードが表示されます:

<a href="../../docs/pages/multipage-template.html" 
data-inline="true" 
data-theme="b" 
data-role="button" 
rel="external" 
class="ui-btn ui-btn-inline ui-btn-corner-all ui-shadow vt-p ui-btn-up-b">
<span class="ui-btn-inner ui-btn-corner-all" aria-hidden="true"><span class="ui-btn-text">View multi-page template</span></span>
</a>

したがって、rel="external"コードは、このページが ajax トランジションを使用して読み込まれないことを意味し、このボタンをクリックすると、マルチページ テンプレートが完全に機能します (ただし、ajax 経由では読み込まれません...)。ボタンのコードでは、属性 rel="external" を DOM から動的に削除したため、ページは ajax で読み込まれます。ボタンをクリックすると、複数ページがうまくロードされましたが、ページ「#two」に到達することはできませんでした。DOM をざっと見てみると、id="two" のページは存在せず、フレームワークによって読み込まれませんでした。

おそらく通常の動作ですが、ajax transition を使用するときにマルチページ テンプレートのすべての内部ページを読み込む方法はありますか?

(私の悪い英語で申し訳ありませんが、それでも理解できることを願っています)

4

1 に答える 1

3

これは正常な動作ですが、回避策があります。Todd Thomson のjQuery-Mobile-Subpage-Widget をチェックしてください。

于 2012-01-13T19:46:19.717 に答える