サイトを jQueryUI から jQuery Mobile に変換していますが、問題が発生しています。
ユーザーが新しいタイムシート エントリを追加できるページがあります。「追加」ボタンをクリックすると、サーバーから部分ビューがページに直接取得されます。
問題は、jQuery Mobile が部分ビューのどの要素にも適用されないことです。
ページに挿入された要素を jQuery Mobile に強制的に処理させるにはどうすればよいですか?
サイトを jQueryUI から jQuery Mobile に変換していますが、問題が発生しています。
ユーザーが新しいタイムシート エントリを追加できるページがあります。「追加」ボタンをクリックすると、サーバーから部分ビューがページに直接取得されます。
問題は、jQuery Mobile が部分ビューのどの要素にも適用されないことです。
ページに挿入された要素を jQuery Mobile に強制的に処理させるにはどうすればよいですか?
簡単に言えcreate
ば、部分ビューを挿入する場所の親要素でメソッドをトリガーするだけです。
例えば$('#container').trigger( "create" );
または、ほとんどのウィジェットは、たとえば listview: のように、要素で呼び出すことによって手動で初期化できます$('#myListview').listview()
。これは、拡張が必要な要素がわずかしかなく、コンテナのすべての子要素をトラバースしたくない場合に役立ちます。また、多くのウィジェットには、たとえば既に初期化された後に要素を追加する場合に呼び出すことができる refresh メソッドがあることも知っておく必要があります$('#myListview').listview('refresh)
。
また、この問題を扱っている JQM ドキュメントの次のQ & Aと、これらのメソッドを呼び出す必要がある理由についての説明もご覧ください。
質問: ページに挿入されたコンテンツは拡張されません。
答え:
jQuery Mobile には、いつページにコンテンツが挿入されたかを知る方法がありません。拡張する必要があるコンテンツを挿入したことを jQuery Mobile に知らせるには、新しい要素を拡張するためにプラグインが呼び出されるようにするか、親コンテナーでトリガー ("作成") して、各プラグインを呼び出す必要がないようにする必要があります。手動で。