我想运行下面的代码,但我有另一个和平的代码,每次您单击该页面的图标时,它都会运行并刷新列表。下面的代码运行良好,但随后被刷新覆盖,结果在几秒钟后消失。我读过许多相关的问题,但不幸的是答案非常不一致。
这是我希望在包含id=page-activity的页面刷新后运行的代码。有什么建议吗?
function ShowList(){
var m = $("#flip-1").val() == "on";
var f = $("#flip-2").val() == "on";
$('#myListView li').show();
if (m && !f) {
$("#myListView li:contains('female')").hide();
} else if (!m && f) {
$("#myListView li:contains('male')").hide();
}
}; 发布于 2014-10-24 23:21:14
这是因为ajax调用是异步的。它可能没有完成,并在以后更新它。将ajax调用放在pagebeforeshow中。
给你的页面命名:<div data-role="page" id="somename">
在显示前在页面中执行ajax调用:
$(document).on("pagebeforeshow","#somename",function(){
var url='some server url, usually RESTful web apis'
$.ajax({
url: url,
error: function (){
alert('Network error has occurred. Please try again.');
},
success: function(data){
alert('success:'+data);
} //end success
}); //end ajax
});您可以监控ajax调用何时完成。
https://stackoverflow.com/questions/26536569
复制相似问题