我想在代码下运行,但每次点击该页面的图标时,我都会运行并刷新列表的另一个代码。下面的代码运行良好,但随后被刷新覆盖,结果在几秒钟后消失。我已阅读了许多相关问题,但不幸的是答案非常不一致。
这是我想要在刷新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();
}
};
答案 0 :(得分:0)
这是因为ajax调用是异步的。它可能没有完成并在以后更新。把ajax调用放在pagebeforeshow中。
为您的网页命名:<div data-role="page" id="somename">
在show:
之前在页面中执行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呼叫何时结束。