2012-07-09 67 views
0

我有一個登錄頁面,並希望在網頁調用ajax函數來加載數據時顯示微調,當它完成後調用chagePage並且一切正常加載,除非沒有微調器顯示。我從其他問題中得到了暫停,如果我正在調試並逐步通過但沒有生效,它就會起作用。我也試過把它放在ajax的beforeSend中。jQuery Mobile showPageLoadingMsg()

$('#loginButton').live('click',function(e){ 
    $.mobile.showPageLoadingMsg(); 
    setTimeout(initialLogin(),300); 
}); 

謝謝!

if(success){ 
//Load home page 
    $.mobile.changePage("#second"); 
    loadList(); //loads listview 
} 

僅供參考下面是我使用

$(document).bind("mobileinit", function(){ 
$.mobile.defaultPageTransition = 'none'; 
$.mobile.buttonMarkup.hoverDelay= 250; 
$.mobile.allowCrossDomainPages = true; 
$.support.cors = true; 
$.mobile.pushStateEnabled = false; 
$.mobile.orientationChangeEnabled = true; 
}); 
+0

'initialLogin()'函數的代碼是什麼? – Jasper 2012-07-09 19:48:36

+0

只是一些文本框驗證,然後它調用ajax函數,當我通過它時,顯示整個微調框一直到hidePageLoadingMsg()像它應該的。即使我將超時設置爲5000,它也會在那裏停留5秒,並且永遠不會顯示微調器。 – Jason 2012-07-09 19:53:33

+0

我想查看'initialLogin()'函數的代碼的原因是因爲你很可能使它比它需要更復雜。 'changePage'函數可以自己顯示/隱藏加載消息。 – Jasper 2012-07-09 19:57:14

回答

1

的設置,您可以使用它應用廣泛是這樣的:

$(document).ajaxStart(function() { 
    $.mobile.showPageLoadingMsg(); 
}).ajaxStop(function() { 
     $.mobile.hidePageLoadingMsg(); 
    }); 
+0

仍然沒有按預期工作,再次它似乎並不重要,我把它放在事件鏈中,只有當我在調試過程中停止時纔會出現。除非changePage發生得非常快並在頁面UI刷新之前隱藏它。 – Jason 2012-07-10 12:45:37

0

它現在的工作很好,我設置了AJAX異步到爲true並填充成功區域中的對象。