【问题标题】:Phonegap/ jquery mobile 'pagebeforeshow' event not working correctly for me on Android?Phonegap/jquery mobile 'pagebeforeshow' 事件在 Android 上无法正常工作?
【发布时间】:2015-05-29 09:11:23
【问题描述】:

在我的应用程序中,在初始登录屏幕之后加载下一页有相当长的延迟。

在我的 iOS 应用程序中,我能够在 pagebeforeshow 事件中启动一个活动指示器,这样用户就可以知道应用程序正在加载,而不仅仅是一个空白屏幕。如下

$(document).on("pagebeforeshow", "#mainScreen", function() 
{ 

$('body').addClass('ui-loading'); 
$.mobile.loading("show", { 
text:"Loading", 
textVisible: $.mobile.loader.prototype.options.text, 
theme: $.mobile.loader.prototype.options.theme, 
}); 
}); 

$(document).on("pageshow", "#mainScreen", function() 
{ 
$('body').removeClass('ui-loading'); 
}); 

我在 Android 设备上显示微调器时遇到问题。我在 pagebeforeshow 事件中运行了带有警报的应用程序,所以我知道它已被触发,但我不知道为什么它不会显示

【问题讨论】:

  • pagebeforeshow 和 pageshow 更多地与元素上的动画有关,虽然是的,它可能在浏览器开始动画但直到某个阶段才返回完成的某些情况下工作......这也可能意味着android发回不同的东西...尝试将console.log与您的addclass removeclass一起放置,看看它是否真的在触发...实际上可能不是console.log ...警报?也许或者你可以在 android 上调试的东西
  • 它正在触发,但我现在的问题是该指示器仅在页面加载后可见。我很抱歉最有经验的 jquery 所以很多这对我来说都是反复试验

标签: cordova jquery-mobile jquery-mobile-pageshow


【解决方案1】:

为什么不使用 ajaxStart 事件?

$(document).ajaxStart(function() {
    $.mobile.loading('show');
});

$(document).ajaxStop(function() {
    $.mobile.loading('hide');
});

【讨论】:

  • 谢谢,但是当我调用 Ajax 请求时显示没有问题。我的问题是我有一两个页面加载速度很慢,我想要一个加载时的指示器
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多