jquery-mobile – jQuery Mobile – 让showPageLoadingMsg与pagebeforeshow或pagebeforeceate一起工作的问题

前端之家收集整理的这篇文章主要介绍了jquery-mobile – jQuery Mobile – 让showPageLoadingMsg与pagebeforeshow或pagebeforeceate一起工作的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试解决此问题的第二周,以获取正确显示的加载消息:-(

我只是很难获得pagebeforecreate或pagebeforeshow事件来触发$.mobile.showPageLoadingMsg().

这是jsfiddle上的示例链接

[http://jsfiddle.net/7fxQf/25/][1]

请注意,jsFiddle引用了移动1.0b3库.

以下是应该有效的基本代码段示例,但不是:

$('#mypageone').live('pagebeforecreate',function (event,ui) {
   alert('Just selected page one!');
   //HEY!!! the page load never pops up :-(
   $.mobile.loadingMessage = "this msg set on live pageshow from mypageone...";
   $.mobile.pageLoading();
   $.mobile.showPageLoadingMsg();
  calcLongList();  //simple list generation of a 1000 lines to screen
 //$.mobile.hidePageLoadingMsg();
});

页面实际加载时,我可以触发警报,但遗憾的是不是加载消息.

…但是,如果更改为“pageshow”,将显示加载消息,但当然在生成列表所需的5-10秒后:-( …这当然不是我想要的.

另外,如果我注释掉calcLongList函数并不重要…页面加载msg表现相同:适用于’pageshow’…但不适用于’pagebeforeshow’或’pagebeforecreate’……我拉着我的头发想弄清楚我可能做错了什么?

任何建议或指导肯定会受到赞赏,在此先感谢

解决方法

当jQM显示加载指示符时,它会向使用$.mobile.hidePageLoadingMsg()删除的html对象(.ui-loading)添加一个类.但在某些情况下,它不会将此类添加到html中(因为它不能 – 尝试手动添加它).

简单(稍微脏)修复是手动将类添加到html对象,而不是正文:

$('body').addClass('ui-loading');

删除加载微调器,只需再次删除该类:

$('body').removeClass('ui-loading');

猜你在找的jQuery相关文章