J'utilise jQuery Mobile 1.1.1 et Apache Cordova 2.0.0. Je souhaite que mon application se ferme lorsque j'appuie sur le bouton Précédent, mais uniquement si la page actuelle a ID = feedZive J'utilise le code suivant pour le faire:
function onDeviceReady(){
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(){
if ($.mobile.activePage.is("#feedZive")){
navigator.app.exitApp();
}
else{
navigator.app.backHistory();
}
}
};
Cependant, il semble que je ne puisse pas obtenir la page en cours car j'ai essayé le code suivant:
var activePage = $.mobile.activePage;
alert(activePage);
et mon alerte montre indéfini. J'ai aussi essayé de changer $.mobile.activePage
en $.mobile.activePage.attr("id")
mais cela n'a pas fonctionné.
$(document).live('pagebeforeshow', function() {
alert($.mobile.activePage.attr('id'));
});
Essayez d'utiliser
var activePage = $.mobile.activePage.attr("id");
J'ai fait un jsfiddle de travail pour vous http://jsfiddle.net/Z5Uze/1/
Je réalise que c'est un vieux fil, donc c'est probablement un ajout plus récent.
As-tu essayé:
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
if(activepage[0].id == yourpageid)
{ /*do something here*/ }
ou d'une autre manière:
var activePage = $.mobile.activePage.attr('id')
if(activepage == yourpageid)
{ /*do something here*/ }
Essayez ceci, ça marche pour moi:
var activePage = $.mobile.activePage[0].id;
Voici un Fiddle avec une alerte qui fonctionne: http://jsfiddle.net/9XThY/3/
$(document).ready(function() {
//exit when back button pressed on home screen
document.addEventListener("deviceready", function() {
document.addEventListener("backbutton", function() {
if ($.mobile.activePage.attr('id') == "home") {
navigator.app.exitApp();
} else {
navigator.app.backHistory();
}
}, false);
}, false);
});
Nous faisons ceci:
$(document).on("pagecontainershow", function() {
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
var activePageId = activePage[0].id;
if(activePageId != 'splashPage') { //fix rotation splash flash bug
$("#splashPage").hide();
} else {
$("#splashPage").show();
}
switch(activePageId) {
case 'loginPage':
loginPageShow();
break;
case 'notificationPage':
notificationPageShow();
break;
case 'postPage':
postPageShow();
break;
case 'profilePage':
profilePageShow();
break;
case 'splashPage':
splashPageShow();
break;
case 'timelinePage':
timelinePageShow();
break;
default:
break;
}
});
Et la navigation fonctionne comme ceci:
$.mobile.loading('hide');
$(":mobile-pagecontainer").pagecontainer("change", "#timelinePage", {
transition: 'none'
});
Jquery mobile 1.4.3 convivial ...
$(document).on('pagebeforeshow', function () {
var URL = $.mobile.path.parseUrl(window.location).toString().toLowerCase();
alert(URL);
});