jQuery Mobile - 如何强制该页面重新创建 - pagebeforecreate事件

时间:2012-11-26 16:42:11

标签: javascript jquery json jquery-mobile

我有一个小型的jQuery移动网站。

  • 这是所有单.html个文件
  • 它有一些编辑功能(查看,编辑,保存)
  • 所有适用于ajax/json/web service

我的大多数网页都使用web service, via AJAX & JSON中的数据,所以我使用了以下内容:

$(document).on( 'pagebeforecreate', '#monday', function() {

// do some stuff on before create, load data with AJAX

});

现在,我如何强制该页面重新创建(pagebeforecreate事件)以便再次运行AJAX内部(从服务器获取最新数据)?

3 个答案:

答案 0 :(得分:2)

使用pageBeforeShow代替pageBeforeCreate

来自jqm documentation,关于创作活动。

  

请注意,这些事件每个“页面”只会触发一次,而不是每次显示和隐藏页面时触发的显示/隐藏事件。

答案 1 :(得分:2)

我建议您创建一个函数,可以在pagebeforecreate事件触发时调用,也可以在您想要更新站点时调用:

function myUpdateFunc() {
    // load data w/ AJAX
}

$(document).on('pagebeforecreate', '#monday', function () {
    //do some stuff on `pagebeforecreate`

    myUpdateFunc();
});

现在,您可以从声明范围内的任何位置调用myUpdateFunc()函数。

此外,您可以使用.trigger()触发事件,在事件的事件处理程序中运行代码:

$('#monday').trigger('pagebeforecreate');

答案 2 :(得分:1)

使用以下代码强制页面重新创建/刷新:

function refreshPage() {
  $.mobile.changePage(
    window.location.href,
    {
      allowSamePageTransition : true,
      transition              : 'none',
      showLoadMsg             : false,
      reloadPage              : true
    }
  );
}

here进行测试。