通常的方法对您没有帮助,因为 jQuery Mobile 仅当页面 i 加载到 DOM 超过 10 毫秒时才会显示加载器,即使在页面加载到 DOM 时它也会隐藏。通常,如果页面很复杂,这将在页面成功显示之前很久。
但是您可以手动显示/隐藏它。
这是一个工作示例:http: //jsfiddle.net/Gajotres/qx7Yn/
$(document).on('pagebeforecreate', '[data-role="page"]', function(){
var interval = setInterval(function(){
$.mobile.loading('show');
clearInterval(interval);
},1);
});
$(document).on('pageshow', '[data-role="page"]', function(){
var interval = setInterval(function(){
//$.mobile.loading('hide');
clearInterval(interval);
},1);
});
基本上,您要做的就是在即将创建页面时显示加载器并在 pageshow 事件期间隐藏它。就我而言,这一行:
//$.mobile.loading('hide');
被评论是因为页面很简单,它会立即加载。也不要忘记使用这个:
$.mobile.loader.prototype.options.text = "loading";
$.mobile.loader.prototype.options.textVisible = true;
$.mobile.loader.prototype.options.theme = "a";
您需要的一切都在我的 jsFiddle 示例中。
编辑 :
此示例与 jQuery Mobile 1.1 兼容。:http: //jsfiddle.net/Gajotres/qx7Yn/