我正在使用jQuery Mobile 1.1.1和Apache Cordova 2.0.0。当我按下后退按钮时,我希望我的应用程序退出,但仅当当前页面具有ID = feedZive时。我正在使用以下代码来执行此操作:
function onDeviceReady(){
document.addEventListener("backbutton", onBackKeyDown, false);
function onBackKeyDown(){
if ($.mobile.activePage.is("#feedZive")){
navigator.app.exitApp();
}
else{
navigator.app.backHistory();
}
}
};
然而,看起来我无法获取当前页面,因为我尝试了以下代码:
var activePage = $.mobile.activePage;
alert(activePage);
我的警报显示未定义。我还尝试将$.mobile.activePage
更改为$.mobile.activePage.attr("id")
,但它无效。
答案 0 :(得分:46)
$(document).live('pagebeforeshow', function() {
alert($.mobile.activePage.attr('id'));
});
答案 1 :(得分:18)
尝试使用
var activePage = $.mobile.activePage.attr("id");
我为你做了一个工作jsfiddle http://jsfiddle.net/Z5Uze/1/
答案 2 :(得分:11)
我意识到这是一个旧线程,所以这可能是最近的补充。
你试过了吗?
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
if(activepage[0].id == yourpageid)
{ /*do something here*/ }
或其他方式:
var activePage = $.mobile.activePage.attr('id')
if(activepage == yourpageid)
{ /*do something here*/ }
答案 3 :(得分:6)
试试这个,它为我工作:
var activePage = $.mobile.activePage[0].id;
这是一个小提琴,其中有一个有效的提醒:http://jsfiddle.net/9XThY/3/
答案 4 :(得分: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);
});
答案 5 :(得分:2)
我们这样做:
$(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;
}
});
导航的工作原理如下:
$.mobile.loading('hide');
$(":mobile-pagecontainer").pagecontainer("change", "#timelinePage", {
transition: 'none'
});
答案 6 :(得分:0)
Jquery mobile 1.4.3友好...
$(document).on('pagebeforeshow', function () {
var URL = $.mobile.path.parseUrl(window.location).toString().toLowerCase();
alert(URL);
});
答案 7 :(得分:-2)
这两个解决方案都很好,但我需要把它放在document.ready(function()
中$(document).ready(function(){
var activePage = $.mobile.activePage[0].id;
alert(activePage);
});