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

Ada*_*dam 3 jquery jquery-mobile

我需要获取加载的活动页面元素的ID .我知道我们可以$.mobile.activePage用来获取当前页面,并且我们可以使用获取此元素的ID $.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');
    }
});
Run Code Online (Sandbox Code Playgroud)

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

fre*_*ent 11

我认为你的问题是,pageinit太早,无法查询活动页面类.

如果您加载第一页,则在调用changePage到第一页之前将触发pageinit(第一页也通过changePage调用加载).仅JQM中的@about第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
Run Code Online (Sandbox Code Playgroud)

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

希望有所帮助!