2013-03-05 75 views
0

我的代碼中有下列情況。在其中搜索結果顯示每個結果頁面有這樣的代碼:jQuery Mobile在頁面轉換過程中加載內容

<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 
    }); 
} 

另一個有趣的事情是,加載部件沒有在頁面加載過程中。我究竟做錯了什麼 ?

+0

http://stackoverflow.com/questions/1964839/jquery-please-wait-loading -animation – 2013-03-05 21:17:10

+0

使用'event.preventdefault();'或'event.stopImmediatePropagation();'來防止JQM執行處理程序。在執行你自己的處理程序之前使用它們。 http://api.jquery.com/event.preventDefault/或http://api.jquery.com/event.stopImmediatePropagation/ – Omar 2013-03-05 22:09:25

回答

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) 
    { 

    } 
}