JQuery mobile:页面刷新后运行代码

时间:2014-10-23 20:11:39

标签: javascript jquery html5 jquery-mobile

我想在代码下运行,但每次点击该页面的图标时,我都会运行并刷新列表的另一个代码。下面的代码运行良好,但随后被刷新覆盖,结果在几秒钟后消失。我已阅读了许多相关问题,但不幸的是答案非常不一致。

这是我想要在刷新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();
}

};  

1 个答案:

答案 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呼叫何时结束。