我在 jQueryMobile( 1.3.1 ) 和 Phonegap(为 Android 和 iPhone 应用程序使用 2.7.0 )。目前正面临与预加载器图像相关的问题。我正在使用 Gif 图像作为预加载器。
我正在为预加载器功能使用自定义函数:showLoading()
function showLoading()
{
$("body").append("<div id='overlay'></div><img src='images/loading.gif' id='loader_image'/> ");
}
要隐藏预加载器,请使用另一个函数:hideLoading()
function hideLoading()
{
$("#overlay,#loader_image").remove();
}
我的问题是当我尝试从一个页面移动到另一个页面时,当像单击按钮一样触发事件时,预加载器没有动画。
$("#menubooking,#booking").on('click',function(event){
showLoading();
$.mobile.changePage( "#mobile_page_form_bookacar", {reverse: false, changeHash: true});
event.preventDefault();
});
因此,我使用setTimeout 函数() 让它工作。
我的代码现在看起来像:
$("#menubooking,#booking").on('click',function(event){
showLoading();
setTimeout(function(){
$.mobile.changePage( "#mobile_page_form_bookacar", {reverse: false, changeHash: true});
event.preventDefault();
},200);
});
现在我的预加载器可以工作了,但是预加载器图像会在 200 毫秒后粘住(不是动画),它看起来像一个普通的 jpg 图像。当我点击一个按钮时,我的预加载器工作了 200 毫秒,然后就卡住了。不过,其他功能运行顺利:下一页的 API 调用以及其他所有功能。
在这种情况下,我不明白确切的问题是什么。
我的预载...
200 毫秒后它看起来像(在更改页面之前..)
我已经检查了 jQueryMobile Preloader 但它也像我的自定义预加载器一样坚持。
我知道使用 setTimeout 函数会影响我的应用程序的性能,但我不得不使用它来让预加载器工作。我认为这可能是因为一个小问题而发生的……但我不明白为什么会这样。我已经浪费了很多宝贵的时间来尝试解决这个问题。
请帮忙..