這裏有一個工作示例:http://jsfiddle.net/Gajotres/Zr7Gf/
$(document).on('pagebeforecreate', '#index', function(){
var interval = setInterval(function(){
$.mobile.loading('show');
clearInterval(interval);
},1);
});
$(document).on('pageshow', '#index', function(){
var interval = setInterval(function(){
$.mobile.loading('hide');
clearInterval(interval);
},1);
});
但在這裏,我們有一個不同的問題,除非你的網頁是足夠複雜的新頁面將很快加載。 jQuery手機有內部計時器,看起來頁面加載到DOM的速度有多快。如果頁面非常複雜並且加載時間超過10毫秒,則在任何其他情況下都會顯示加載器,無論您嘗試多麼艱難,加載器都不會顯示。
另請注意,只有DOM加載將計入該10毫秒。頁面樣式和轉換不在計算中。因此,無論頁面加載看起來是否只有較長的DOM加載次數。
我的示例不會顯示加載程序,因爲它是一個非常簡單的示例,並且pageshow事件幾乎可以立即觸發。但是你可以看到,它正在例如,如果你對此有何評論這一行:
$.mobile.loading('hide');
你的情況,它應該工作,因爲直到頁面加載pageshow事件將被延長。
感謝您的回覆。我試過你的代碼,但是我面臨的問題是,加載器僅顯示在加載的頁面(源代碼)上,並且在第二個(目標)頁面顯示之前,我仍然看到「白色」頁面。任何方式不顯示瞬間白色,或在白色顯示裝載機?在顯示加載程序時可能會添加一個人工延遲?再次感謝。 – WhatsInAName 2013-04-24 19:27:56