我正在使用Jquery mobile 1.1,我想在页面加载之前显示加载消息 使用骨干路由器。移动初始化代码是
$(document).bind("mobileinit", function() {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.showPageLoadingMsg="loading";}
但未显示加载消息。 有什么建议吗?
答案 0 :(得分:1)
但您可以手动显示/隐藏它。
以下是一个有效的例子: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/
答案 1 :(得分:0)
感谢@ Gajotres的回答, 但是因为我使用的是jquery-mobile-1.1 我用
$(document).on('pagebeforecreate', '[data-role="page"]', function(){ var interval = setInterval(function(){ $.mobile.showPageLoadingMsg('show'); clearInterval(interval); },1); }); $(document).on('pageshow', '[data-role="page"]', function(){ var interval = setInterval(function(){ $.mobile.showPageLoadingMsg('show'); clearInterval(interval); },1); });
但是加载消息没有消失:(