2013-04-15 37 views
0

在jQuery Mobile中,我使用了多頁面ajax系統。我想要做的是,當用戶選擇一個頁面時,jquery加載器出現,另一個頁面只在ajax插入頁面後才顯示。Ajax插入後的加載頁面jQuery Mobile

例如,如果我有一個頁面#list和另一個頁面#listdetails我想當用戶選擇列表頁面上的列表項目,然後它加載,顯示加載圖形。 listdetails頁面僅在用戶完全加載ajax內容時向用戶顯示。如何做到這一點,任何幫助將不勝感激。

回答

1

它可以做到,我爲你做了一個例子。這是不是100%你想要的東西,但你會得到點:http://jsfiddle.net/Gajotres/AzXdT/

基本上我在我的例子做的就是展示AJAX程序的時候,頁面即將被隱藏:

$(document).live('pagebeforehide', '[data-role="page"]',function(e,data){ 
    var loader = setInterval(function(){ 
     $.mobile.loading('show'); 
     clearInterval(loader); 
    },1); 
}); 

藏起來當頁面加載:

$(document).live('pageshow', '[data-role="page"]',function(e,data){ 
    var loader = setInterval(function(){ 
     $.mobile.loading('hide'); 
     clearInterval(loader); 
    },1); 
}); 

的setInterval是因爲這裏的Web瀏覽器套件顯示有甚至除了pageshow任何阿賈克斯裝載機的一個問題。

你可以使用我的代碼隱藏時,將顯示頁面的ajax裝載機,但有時你的Ajax pageshow後,將成功結束,以便讓說這是你的Ajax調用:

$.ajax({ 
    type: "POST", 
    url: host, 
    dataType: "xml", 
    data: somedata, 
    success: function(xml) { 
     //Do something 
     hideloader();   
    }, 
    error: function (request,error) { 
     //Report an error 
     hideloader(); 
    } 
}); 

function hideloader() { 
    var loader = setInterval(function(){ 
     $.mobile.loading('hide'); 
     clearInterval(loader); 
    },1); 
} 

在這種情況下,我已經使用2臺裝載機

+0

會看看謝謝 –