我有一个小型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
}
);
}
从这里拍摄和测试。