使用最新的jquery mobile(“http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js)和jquery(http://code.jquery.com/jquery-1.9.1.min.js)和我的pagecreate事件大部分时间都可以工作,但是,如果我单击后退按钮然后尝试刷新页面,没有显示任何内容。我可以看到使用FireBug发生的请求,但我看不出为什么页面上没有设置json结果。
谢谢!
$(document).on("pagecreate", "#checkout51", function(event, ui) {
thisPage = $(this);
loadPageContent("checkout51.html", function(data) {
$(thisPage).prepend(data);
});
});
$(document).on("pageshow", "#checkout51", function(event, ui) {
$.mobile.loadingMessage = "Please wait - loading coupons ...";
var couponslist = $('#couponslist');
$.mobile.showPageLoadingMsg();
var url = "http://www.test.com/request.php?";
$.getJSON(url, {
limit: "100",
coupon_source : "Checkout51"
}, function (data) {
var listContent = "";
listContent += "<li data-role='list-divider'>Checkout51 Coupons</li>";
$.each(data, function(index, value){
listContent += "<li><h2><a class='ui-link-inherit' href='coupondetails.html?id=" + value.coupon_id + "'>" + value.name + "</a></h2></li>";
});
$('#couponslist').empty().append(listContent).listview('refresh');
})
.error(function() { alert("Error while request processing"); })
.complete(function() {
$.mobile.hidePageLoadingMsg()
});
});
将其用作HTML:
<div class="fixed-header" data-position="fixed" data-tap-toggle="false" data-role="header" data-theme="b">
<a href="#" data-theme="b" class='ui-btn-left' data-icon='arrow-l'>Back</a>
<h1>Checkout51 Coupons</h1>
<a href="#" data-role="button" data-theme="b" data-icon="home" data-iconpos="notext"></a>
</div>
<div data-role="content" data-theme="c"><br /><ul id="couponslist" data-role="listview" role="listbox"></ul><br /></div>
<div data-role="footer" data-position="fixed" data-id="footer"><div data-role="navbar"><ul><li><a href="index.html" id="menu1" data-role="button" data-icon="home">Home</a></li> <li><a href="search.html" id="menu2" data-role="button" data-icon="search">Search</a></li><li><a href="subscribe.html" id="menu3" data-role="button" data-icon="info">Subscribe</a></li></ul></div></div><!-- /footer -->
我很感激任何帮助 - 这是针对Phonegap应用程序的,但我需要看到这一点一直使用浏览器。
答案 0 :(得分:1)
pagecreate
只会触发一次。如果您希望每次在浏览器上加载页面时触发事件,则必须考虑pageshow
。如果要在向用户显示页面之前加载json请求,请考虑使用pagebeforeshow
。
了解不同类型的events available in JQM here。