1

2ページのアプリケーションがあります。どちらのページにも、クライアント上で動的に作成されたすべてのコンテンツがあります。

問題は、私が行った場合、2回目以降の訪問で、正しくトリガーpage A > page B > page A > page Bされても、ページBがJquery Mobileによって強化されないことです。pagecreate拡張されていないマークアップのページで立ち往生しています。

ウィジェットcreateはランダムなタイプになり、 I cannot call create prior to initialization. このエラーを受け取った後pagecreate、拡張されていないページで手動で呼び出し、すべてのウィジェットを修正しました。

問題は、ページが JQM によって強化されているかどうかをどのように検出できるかということです。すでに強化されたページでこれを呼び出したくないからです。

一見簡単な質問ですが、ページがJquery
Mobile によって拡張されているかどうかをテストするにはどうすればよいですか?

入力していただきありがとうございます!

4

1 に答える 1

2

とてもシンプルです。

  1. ページのマークアップを強化するために trigger('pagecreate') を使用していた場合は、これを使用してページ コンテナーが強化されているかどうかを確認します。

    $(document).on('pagebeforeshow', '#index', function(){       
        alert($.mobile.activePage.hasClass('ui-page'));
    });
    

    実際の例: http://jsfiddle.net/Gajotres/HthYd/

  2. ページ コンテンツ div のみを拡張するために trigger('create') を使用している場合、これを使用してコンテンツ コンテナが拡張されているかどうかを確認します。

    $(document).on('pagebeforeshow', '#index', function(){       
        alert($.mobile.activePage.find('[data-role="content"]').hasClass('ui-content'));
    });
    

    実際の例: http://jsfiddle.net/Gajotres/8jcGb/

もちろん、このケースは、ページ全体またはコンテンツ全体を強化する場合にのみ機能します。

編集 :

そして、これは動的に追加されたページを使用した実際のライブの例です: http://jsfiddle.net/Gajotres/8jcGb/

于 2013-02-28T14:59:02.127 に答える