0

私のコードには次のようなケースがあります。検索結果が表示されるページでは、すべての結果に次のコードがあります。

<a href='#pageSearchDetail'>Result</a>

ページ#pageSearchDetailをクリックすると、次のイベントを使用して、ページが表示される前に何かを実行します。

$(document).delegate('#pageSearchDetail', 'pagebeforeshow', function() 
{    
    AjaxSearchDetail();        
});

AjaxSearchDetailで、Webサーバーからデータをロードし、そのデータをDOMに挿入します。私の問題は、ajaxリクエストがまだ終了していないにもかかわらず、ページがすでに表示されていることです。したがって、ajaxの読み込みが完了するまで、ページは部分的にのみ「空」で表示されます。

ajaxリクエストのコード:

function AjaxSearchDetail()
{               
    var data = "&data=test";

    $.ajax({
        data: data,        
        success: Success,
        error: Error
    });
}

もう1つの面白い点は、ページの読み込みプロセス中に読み込みウィジェットが表示されないことです。私は何が間違っているのですか?

4

1 に答える 1

1

次のコードでこの問題を解決しました。

$(document).ajaxStart(function() {    
    $.mobile.loading('show');
});

$(document).ajaxStop(function() {
    $.mobile.loading('hide');
});

そして今私は使用します:

$(document).on("pagechange", function(e, data) 
{
    var pageID = data.toPage.attr("id");

    switch (pageID)
    {

    }
}
于 2013-03-05T22:18:08.647 に答える