初め、
$("document")
する必要があります
$(document)
要素がないので<document>
、もしあったとしても、あなたはそれらを要求しないでしょう.ready()
。
次に、この問題が発生する理由は、$(document).ready()
ページ全体の読み込みごとに1回だけ発生するためです。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()
イベントが発生するためです。