在页面加载时加载此AJAX调用

时间:2013-02-07 19:37:57

标签: php jquery ajax jquery-mobile

我想在页面加载时加载这个AJAX调用。现在我需要点击刷新按钮才能加载。

更新的代码:

$(document).on("pageinit", "#members", function() {
$.ajax({
url: 'data.php',
success: function(data) {    
$("#result").html(data).trigger('create');
$("#result").listview('refresh');
}
});
});

如果我输入页面网址,它会正确加载,但在我浏览index.php文件时却没有。

1 个答案:

答案 0 :(得分:2)

首先,

$("document")

应该是

$(document)

因为没有<document>个元素,如果有,你就不会在它们上面调用.ready()

接下来,您遇到此问题的原因是$(document).ready()仅在每页整页加载时触发一次。在jQuery Mobile中更改为新页面不会触发整页加载,而是在带有ajax的新页面中加载。为了解决这个问题,jQuery mobile有一个名为“pageinit”的事件在被加载的页面上被触发。这就是你在这种情况下绑定它的方式:

pre-jquery 1.7

// yes, i know delegate is better, but the documentation specifically suggested using .live
$("#pageid").live("pageinit",function(){
    $.ajax({
        url: 'data.php',
        success: function(data) {    
            $("#result").html(data).trigger('create');
            $("#result").listview('refresh');
        }
    });
});

post-jquery 1.7

$(document).on("pageinit","#pageid",function(){
    $.ajax({
        url: 'data.php',
        success: function(data) {    
            $("#result").html(data).trigger('create');
            $("#result").listview('refresh');
        }
    });
});

刷新页面的原因是刷新页面时发生$(document).ready()事件。