1

jQuery Mobile アプリの「内部」ページ (つまり、ホームページから移動するページ) に表示されるダイアログがあります。ナビゲーションは AJAX を介して行われるため、divdata-role="page"がロードされてアニメーション化されます。

問題は、標準的な方法で内部ページをリクエストすると、リクエスト時にダイアログが表示$.mobile.changePageされますが、AJAX 経由でリクエストするとダイアログがまったく表示されないことです。

要素の兄弟 (子ではない) として正しい場所にありdata-role="page"、さまざまな場所に含めようとしましたが、ページが AJAX 経由で要求されたときに表示されません。

何か案は?ダイアログを開くコードは次のとおりです。

$('a[data-action="audio"]').on('click',
    function(e) {
        e.preventDefault();
        $.mobile.changePage('#recording',
            {
                transition: 'pop',
                changeHash: false,
                role: 'dialog'
            }
        );
    }
);

これdiv[data-role="dialog"]は、AJAX 要求を介して読み込まれる HTML ファイルの一部です。dialog()自然に何もしない神話関数も試しました:)

何か案は?

4

1 に答える 1

1

もっとコードを見ないと 100% 確信が持て.onませんが、正しくバインドされていないと思います。あなた.onは現在、ajaxで変更/ロードされた要素にバインドされていると思います。

これでテストしてください:

 $(body).on('click', 'a[data-action="audio"]',

これが機能する場合bodyは、ajax されていない要素に変更する必要があります。

于 2013-10-21T10:28:18.517 に答える