我基本上只需要在主页点击#reviews页面时使用自定义功能。
以下是我正在使用的当前代码:
$(document).bind("mobileinit", function(){
$('#reviews').live('pagebeforeshow',function(event){
var cpage = $.mobile.activePage.attr('id');
if (cpage == 'home') {
addPages();
}
});
});
问题是,即使它正在使用'pagebeforeshow',它正在使用它将要转换为活动页面的页面的id,在这种情况下是'review'而不是home,从而导致if语句失败。
所以我的问题是,在这个例子中,我如何获得上一页的id,以确保它实际上来自#home页面?
答案 0 :(得分:22)
要完成答案:您将获得一个jQuery对象,因此要获取页面的ID,请执行以下操作:
$("#page-id").live('pagebeforeshow', function(event, data) {
console.log("the previous page was: " + data.prevPage.attr('id'));
});
data.prevPage 将上一页作为jQuery对象,
.attr('id')从该jQuery对象获取id。
答案 1 :(得分:6)
pagebeforeshow
事件处理程序实际上有2个参数:event和ui。您可以从ui访问上一页。这是jquery-mobile event docs的一个例子:
$('div').live('pageshow', function(event, ui){
alert( 'This page was just hidden: '+ ui.prevPage);
});
对于所有4页的节目/隐藏事件,这些参数都是相同的。