我想在页面加载时加载这个AJAX调用。现在我需要点击刷新按钮才能加载。
更新的代码:
$(document).on("pageinit", "#members", function() {
$.ajax({
url: 'data.php',
success: function(data) {
$("#result").html(data).trigger('create');
$("#result").listview('refresh');
}
});
});
如果我输入页面网址,它会正确加载,但在我浏览index.php
文件时却没有。
答案 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()
事件。