1

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

4

3 回答 3

2

使用pageBeforeShow而不是pageBeforeCreate.

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

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

于 2012-11-26T16:57:22.243 回答
2

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

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

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

    myUpdateFunc();
});

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

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

$('#monday').trigger('pagebeforecreate');
于 2012-11-26T17:35:05.777 回答
1

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

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

这里获取和测试。

于 2012-11-26T18:37:13.383 回答