1

バックボーンでjQueryモバイルを使用しています

私はjqueryモバイルルーティングを無効にし、すべてうまく機能するバックボーンを使用しています

ここにその設定があります

define(['jquery'], function($){

$(document).bind("mobileinit", function () {
    $.mobile.ajaxEnabled = false;
    $.mobile.linkBindingEnabled = false;
    $.mobile.hashListeningEnabled = false;
    $.mobile.pushStateEnabled = false;
    // Remove page from DOM when it's being replaced
    $('div[data-role="page"]').live('pagehide', function (event, ui) {
        $(event.currentTarget).remove();
    });
});
});

次に、ビューの ajax 呼び出しで、このコードを使用します

     $.ajax({
            beforeSend: function() { $.mobile.showPageLoadingMsg(); },
            url: this.template,
            dataType: 'html',
            async: false,
            success: function(data) {
                compiled = _.template(data);
                $.mobile.hidePageLoadingMsg();
            }
        });

これは、Firefox ではローダーが正常であることを示していますが、Chrome または iOS デバイスでは機能しませんか?

誰でも助けることができますか?

ありがとう

4

1 に答える 1

1

Chrome/safari/android/iOS などの Webkit ブラウザーには、jQM と async: false ajax call に関する問題があります。ajax 呼び出しの処理中にロックされます。何らかの理由で、Firefox にはそのような問題はありません。

変化する:

async: false,

に:

async: true,

async: false がアプリの機能にとって重要であり、ajax の動作中にユーザーの操作を防ぎたい場合は、アプリ全体に透明な div オーバーレイを表示します。beforesend 状態で実行し、成功または失敗状態で削除します。

于 2012-12-21T09:53:00.773 に答える