我在每个页面的底部都有一个带有NavBar
的小型jQuery Mobile网站。栏上有一些按钮,可以在整个网站上使用。
如何在不知道页面名称/ ID的情况下强制pagebeforeshow
事件(在当前查看的页面上)?
是否有执行此操作的常规功能,或者我是否需要先获取页面的name/id
,然后使用此功能调用pagebeforeshow
?
<小时/> 的更新
以下内容为我提供了当前页面ID,但trigger("refresh")
没有触发任何操作(pagebeforeshow
未执行)。
var CurrentPageID = $.mobile.activePage[0].id;
$("#" + CurrentPageID).trigger("refresh");
有什么建议吗?
答案 0 :(得分:3)
Here's一个有效的例子。
这将在点击导航栏时开始页面重新加载:
$('div[data-role="navbar"] ul li').bind('click',function(event, ui){
$.mobile.changePage(
'#'+$.mobile.activePage[0].id,
{
allowSamePageTransition : true,
transition : 'none',
showLoadMsg : false,
reloadPage : false
}
);
});
此代码将捕获pagebeforeshow:
$('#pageID').live('pagebeforeshow',function(e,data){
alert('Reload');
//Execute AJAX here
});
答案 1 :(得分:0)
我假设您导航的所有页面都是data-role
attr的div。所以你应该能够绑定事件,如下所示;
$('div[data-role="page"]').live( 'pagebeforeshow', showLoadDiv);
function showLoadDiv() {
//Your code here
}
//when you want to call it manually
showLoadDiv();