jQuery mobile - 强制pagebeforeshow不知道页面名称

时间:2012-11-28 10:58:44

标签: javascript jquery html html5 jquery-mobile

我在每个页面的底部都有一个带有NavBar的小型jQuery Mobile网站。栏上有一些按钮,可以在整个网站上使用。

如何在不知道页面名称/ ID的情况下强制pagebeforeshow事件(在当前查看的页面上)?

是否有执行此操作的常规功能,或者我是否需要先获取页面的name/id,然后使用此功能调用pagebeforeshow

<小时/> 的更新

以下内容为我提供了当前页面ID,但trigger("refresh")没有触发任何操作(pagebeforeshow未执行)。

var CurrentPageID = $.mobile.activePage[0].id;
$("#" + CurrentPageID).trigger("refresh");

有什么建议吗?

2 个答案:

答案 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();