3

我需要获取加载的活动页面元素的 ID 。我知道我们可以使用$.mobile.activePage来获取当前页面,并且我们可以使用$.mobile.activePage.attr('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?!?

4

1 回答 1

11

我认为您的问题是,pageinit查询活动页面类还为时过早。

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

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

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

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。

希望有帮助!

于 2012-05-19T23:55:30.630 回答