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



我有一个小型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(从服务器获取最新数据)?

使用 pageBeforeShow 而不是 pageBeforeCreate

来自 jqm 文档,关于创建事件。

请注意,这些事件只会在每个"页面"触发一次,而显示/隐藏事件则在每次显示和隐藏页面时触发。

我建议创建一个函数,您可以在pagebeforecreate事件触发时以及要更新站点的任何其他时间调用该函数:

function myUpdateFunc() {
    // load data w/ AJAX
}
$(document).on('pagebeforecreate', '#monday', function () {
    //do some stuff on `pagebeforecreate`
    myUpdateFunc();
});

现在,可以从声明的作用域中的任何位置调用 myUpdateFunc() 函数。

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

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

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

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

从这里拍摄和测试。

最新更新