0

使用最新的 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 应用程序的,但我需要使用浏览器看到它始终如一地工作。

4

1 回答 1

1

pagecreate仅在第一次创建页面时触发一次。如果您希望每次在浏览器上加载页面时都触发一个事件,那么您必须考虑pageshow. 如果您想在向用户显示页面之前加载您的 json 请求,请考虑使用pagebeforeshow.

在此处了解 JQM 中可用的不同类型的事件。

于 2013-03-31T06:52:52.877 回答