2

jQuery Mobile サイトで問題が発生しています。3 つの個別のページ (1 つの index.html ファイル内) があり、すべてが成功イベントで独自のポップアップをロードし、次のように jQuery を介してポップアップをロードしています。

$( "#myPopupDiv" ).popup( "open" );

これはうまく機能しますが、ユーザーがページにアクセスしてそのポップアップを開いた後、後続のページにアクセスすると、それらのページのポップアップは起動しません (ただし、そのページのポップアップはセッション中に機能します)。ただし、すべてのコードはページ上で機能し、Chrome 開発ツールにコンソール エラーはありません。

重複する ID はありません。console.log に入れてみましたが、ポップアップを開くためにコードを起動する必要があります。これは正しく機能し、コードをバイパスしてポップアップを開くように見えます。

以前にこの問題を経験した人はいますか?

前もって感謝します。

簡略化されたコード例

<!-- PAGE 1 -->
<div data-role="page" id="page-1">
    <div data-role="content">
        <!-- BUTTON: loadPopup-1 -->
        <div id="popup-1" data-role="popup">
        <!-- Popup contents -->
        </div><!-- /popup -->
    </div><!-- /content -->
</div><!-- /page -->

<!-- PAGE 2 -->
<div data-role="page" id="page-2">
    <div data-role="content">
        <!-- BUTTON: loadPopup-2 -->
        <div id="popup-2" data-role="popup">
        <!-- Popup contents -->
        </div><!-- /popup -->
    </div><!-- /content -->
</div><!-- /page -->

<!-- JS -->
function loadPopup-1() {
    $( "#popup-1" ).popup( "open" );
}

function loadPopup-2() {
    $( "#popup-2" ).popup( "open" );
}

したがって、ユーザーがページ 1 を選択してそのポップアップを開くと、そのポップアップは引き続き機能しますが、ページ 2 のポップアップは機能しません。その逆も同様です。

4

3 に答える 3

4

一度に複数の JQM ポップアップを開くことはできないようです。

doco から: 注: ポップアップの連鎖は許可されていません フレームワークは現在、ポップアップの連鎖をサポートしていないため、あるポップアップから別のポップアップへのリンクを埋め込むことはできません。ポップアップ内に data-rel="popup" を含むすべてのリンクは、何もしません。

これは、カスタム選択メニューがポップアップを使用して実装されているため、ポップアップ内で機能しないことも意味します。選択メニューをポップアップ内に配置すると、data-native-menu="false" を指定した場合でも、ネイティブの選択メニューとしてレンダリングされます。

于 2013-04-22T15:57:55.737 に答える
3

問題を理解できるように、より多くのコードを表示する必要があります...ポップアップ関数のトリガーは何ですか? それまでは、次のことを行うことをお勧めします。

アクティブなページに一般的なポップアップを作成し、それを開く関数を 1 つ作成します...

サンプルコード:

function ShowPopUp(PopupText){

   // check if popup element already exists
   if($("#PopUp").length > 0)
      $("#PopUp").remove();

   // get active (current) page ID
   var id = $.mobile.activePage.attr("id");

   // add popup element to the active page
   $("#" + id).append("<div data-role='popup' id='PopUp' class='ui-content' data-position-to='window' data-overlay-theme='a'></div>");

   // add your text to the popup
   $("#PopUp").html(PopupText);

   // "refresh" the page with new popup elements
   $("#" + id ).trigger('create');

   // open the popup
   $("#PopUp").popup("open");

}
于 2013-02-28T15:06:41.990 に答える
1

https://github.com/serbanghita/jQM-dynamic-popupを試してみてください- 私は 2012 年以来、これを本番環境で使用しています。

関数にカプセル化$.dynamic_popup(' ... HTML code ... ');します。好きなだけ jQuery Mobile ポップアップをトリガーできます。

于 2013-09-24T19:03:36.750 に答える