4

jQuery Mobileを使ってサイトを作ろうとしています。HTML ファイルの多くのページで構成され、1 ページしかないものもあれば、複数のページを持つものもあります (マルチページ機能を使用)。

サイトには通知用のポップアップがいくつかあり、すべてのページで同じように表示されます。この目的のために設計された新しいポップアップ機能を使用してポップアップを実装しています。各ページにポップアップのコピーを配置することでこれを簡単に実装できますが、これにより多くの冗長なコードが作成され、保守が困難になる可能性があります。おそらく、サーバーにコードを適切な場所に挿入させることができますが、それは複雑で非効率的です。

ポップアップをページの外側に配置しようとしましたが、確実に機能しません (ここで例を参照できます)。

テンプレート システム (underscore.js に組み込まれているもの) を使用してそれらを動的に生成しようとしましたが、問題が発生する可能性があるようです。メモリ リークを避けるために、閉じたときにすべてのポップアップを破棄する必要があります。

これがポップアップ ウィジェットのバグであるかどうかはわかりません。ポップアップ ウィジェットは jQuery Mobile のアルファ版のみにあるため、可能性が高いと思われます。

いくつかの html ファイルに多くのページがあり、すべてのページに共通のポップアップがいくつかあるサイトを作成する方法について、ここに誰かアイデアはありますか?

4

3 に答える 3

3

jQuery Mobile github であなたのリクエストを確認し、Web アプリケーションで使用しているソリューションを投稿しました。http://ghita.org/jquery/dynamic-mobile-popupを確認してください。これは、動的なポップアップを可能にする小さなプラグインであり、ポップアップのコンテンツとイベントに集中できます。

プラグイン ( 1.8kb あり) をインクルードしてから、次のように呼び出します。

$.dynamicPopup({content: 'This is the dynamic content of the popup.'});

content - 文字列または jQuery html オブジェクトにすることができます。

オプションの完全なリストについては、https://github.com/serbanghita/jQM-dynamic-popupを確認してください。その一部は、jQuery のモバイル popup() 関数から継承されています。

私は動的な Web ページを持っており、popup() をアクティブにするために手動で HTML コンテンツを挿入することを気にしないので、この問題は私にとって大きな問題でした。お役に立てば幸いです。

于 2012-08-23T13:15:57.187 に答える
0

jqmローダーのように設定する必要があります。jqmローダーもdiv.pageの外にあります(そうでない場合は、dom内のページごとに1つのローダーがあります)。したがって、正しいアプローチはポップアップを含めないことだと思います。ページ内ですが、div.pageの外です。

jqmはdiv.pagesのみをプルし、前後には何もプルしないため、すべてのページに一般的なポップオーバーを含めて、domに1回だけ含めることができるはずです。div.pageの外でもこれが機能しているかどうかはわかりません。

于 2012-08-21T23:23:24.103 に答える
0

パーティーには非常に遅れるかもしれませんが、誰かが遭遇するのに役立つかもしれません.

最新の JQM を使用している場合 (私は JQM 1.4.2 を使用しています)、グローバル ポップアップを使用できるようになりました。すべてのデータロールページの外で、ボディ div のすぐ下でポップアップを宣言するだけです。

このJQMドキュメントをよく読んでください

于 2014-05-14T13:48:32.493 に答える