我正在用jquery mobile(1.3.1)开发一个Phonegap(cordova 2.5.0)应用程序。我的问题有关后退按钮按下后pageinit函数的行为。第一次导航到(例如)statics-page时,pageinit正常启动。之后,当按下后退按钮并再次从菜单页面导航到相同的statics-page时,pageinit将不再触发。可能导致此行为的原因是什么?
贾尼
//PAGEINIT
$("#staticsPage").live("pageinit", function(){
alert(staticsPage Init);
init_statistics();
});
document.addEventListener("deviceready", appReady, false);
//HANDLE BACK BUTTON
function appReady(){
document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#menuPage'))
{
e.preventDefault();
navigator.app.exitApp();
}
else if($.mobile.activePage.is('#staticsPage'))
{
e.preventDefault();
$.mobile.changePage($("#menuPage"));
}
else
{
navigator.app.backHistory();
}
}, false);
}
pageinit
仅在将页面加载到DOM后才触发该事件,因此将仅触发一次。
初始化后在正在初始化的页面上触发
我会用这个pageshow
事件。当您导航到页面时,将触发此操作:
过渡动画完成后在“ toPage”上触发。
因此,请尝试使用以下代码:
$('#staticsPage').on('pageshow', function(){
alert(staticsPage Init);
init_statistics();
});
document.addEventListener("deviceready", appReady, false);
//HANDLE BACK BUTTON
function appReady()
{
document.addEventListener('backbutton', function(e){
var activePage = $.mobile.activePage.attr('id');
if(activePage == 'menuPage')
{
e.preventDefault();
navigator.app.exitApp();
}
else if(activePage == 'staticsPage')
{
e.preventDefault();
$.mobile.changePage('#menuPage');
}
else
{
navigator.app.backHistory();
}
}, false);
}
请在这里为jQuery Mobile的事件清单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句