0

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

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

是否有通用功能来执行此操作,还是我需要先获取name/id页面然后他们使用它来调用pagebeforeshow


更新

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

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

有什么建议么?

4

2 回答 2

3

这是一个工作示例。

这将在单击导航栏时开始重新加载页面:

$('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
});
于 2012-11-28T12:28:57.447 回答
0

我假设您正在导航的所有页面都是带有data-roleattr 的 div。所以你应该能够如下绑定事件;

$('div[data-role="page"]').live( 'pagebeforeshow', showLoadDiv);

function showLoadDiv() {
   //Your code here
}

//when you want to call it manually
showLoadDiv();
于 2012-11-28T11:25:34.847 回答