cordova - Phonegap + jquery mobile + backbutton + pageinit -
i'm developing phonegap (cordova 2.5.0) app jquery mobile (1.3.1). question concerning pageinit function behavior after button pressed. first time when navigating (for example) statics-page, pageinit fires normally. after when button pressed , navigating menu page same statics-page again pageinit not fires anymore. possible cause of behavior?
jani
//pageinit $("#staticspage").live("pageinit", function(){ alert(staticspage init); init_statistics(); }); document.addeventlistener("deviceready", appready, false); //handle 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); }
the pageinit
event fired once page loaded dom, fired once.
triggered on page being initialized, after initialization occurs
i use pageshow
event. fired when navigate page:
triggered on "topage" after transition animation has completed.
so, try using code instead:
$('#staticspage').on('pageshow', function(){ alert(staticspage init); init_statistics(); }); document.addeventlistener("deviceready", appready, false); //handle 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); }
check here list of jquery mobile events.
Comments
Post a Comment