1

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

更新代码:

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

如果我输入页面 URL,它会正确加载,但当我浏览我的index.php文件时不会。

4

1 回答 1

2

第一的,

$("document")

应该

$(document)

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

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

预 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');
        }
    });
});

后 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()事件就会发生。

于 2013-02-07T19:53:53.037 回答