我需要获取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?!?
答案 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。
希望有所帮助!