如何在jQM中找到第一个pageinit的活动页面?

时间:2012-05-19 22:48:45

标签: jquery jquery-mobile

我需要获取加载的活动页面元素的ID。我知道我们可以使用$.mobile.activePage来获取当前页面,并且我们可以使用$.mobile.activePage.attr('id')获取此元素的ID。但是,首次加载应用程序时undefined。在我的特定应用程序中,我希望用户能够从任何URL输入,我需要知道当前加载的页面,以便正确初始化我的导航系统

$(document).bind('pageinit', function() { 
    if($.mobile.activePage !== undefined) {
        console.log($.mobile.activePage.attr('id'));
    }
    else {
        console.log('1st page load detected');
    }
});
第一次加载时

输出 1st page load detected以及每个后续页面上的ID。如何在第一次加载时获取ID?!?

1 个答案:

答案 0 :(得分:11)

我认为您的问题是, pageinit 要求查询活动网页类太早。

如果您加载第一页,则在调用changePage到第一页之前将触发pageinit(第一页也通过changePage调用加载)。仅JQM中的@about第3639行,活动页面类被分配给页面。

到那时,pageinit早已不复存在。

如果您想获取第一页的ID,请使用任何其他可用的page events

pagebeforeload = triggered before the load request (inside changepage) is made
pageload = triggered after the page was loaded
pagebeforechange = triggered before a changepage is made
pagechange = triggered after changepage is done
pagebeforeshow = triggered before the page is shown
pageshow = triggered when the page is shown

我会使用pagebeforeshow,或者如果你想调整很多内容,请尝试使用pagechange或pagebeforechange。

希望有所帮助!