Android JQuery移动列表视图

Android JQuery移动列表视图,android,jquery-mobile,Android,Jquery Mobile,我用代码拉入一些数据以在listview中使用时遇到了两个奇怪的问题。以下是我的javascript: function getOrders(status, url) { $(function () { //check if url from pagination if (!url) { url = api_url + '/orders/?callback=?&status=' + status; } els

我用代码拉入一些数据以在listview中使用时遇到了两个奇怪的问题。以下是我的javascript:

function getOrders(status, url) {
    $(function () {
        //check if url from pagination
        if (!url) {
            url = api_url + '/orders/?callback=?&status=' + status;
        } else {
            url = root_url + url + '&callback=?';
        }
        $.mobile.loading('show');
        $.getJSON(url, null, function (d) {
            //declare a variable with which to build our output (it's best to buffer output and only do one append at the end since DOM manipulation is CPU expensive)
            var output = '';

            //iterate through the data (we could also get rid of the jQuery here by using `for (key in data) {
            $.each(d.objects, function (index, value) {

                output += '<li><a id="' + value.reference + '" href="view_order.html" class="view_order"><h3>' + value.reference + ' - ' + value.client.company + '</h3><p>' + value.order_date + ' ' + value.user.username + '</p></a><a href="asd" data-icon="gear"  data-iconpos="notext"></a></li>';
            });
            $('#orders_list').html(output).listview('refresh');
            //if paginated, update next button
            if (d.meta.next) {
                $("#id_ordersNext").attr('href', d.meta.next);
                $("#id_ordersNext").show();
            } else {
                $("#id_ordersNext").hide();
            }
            if (d.meta.previous) {
                $("#id_ordersPrevious").attr('href', d.meta.previous);
                $("#id_ordersPrevious").show();
            } else {
                $("#id_ordersPrevious").hide();
            }
            $("#id_ordersTotal").html(d.meta.total_count);
            $.mobile.loading('hide');
        });
    });
}

$(function () {

    //bind the nav
    $(".order_nav").die();
    $(".order_nav").live('click', function () {
        $(".order_nav").each(function () {
            $(this).removeClass('ui-btn-active');
        });
        $(this).addClass('ui-btn-active');
        getOrders($(this).attr('href'));
        return false;
    });

    //bind the view order
    $(".view_order").die();
    $(".view_order").live('click', function () {
        //save var
        window.viewOrderReference = $(this).attr('id');
        $.mobile.changePage("view_order.html");
    });

    $("#id_ordersNext,#id_ordersPrevious").die();
    $("#id_ordersNext,#id_ordersPrevious").live('click', function () {
        getOrders(null, $(this).attr('href'));
        return false;
    });

    //default view
    getOrders('Order Placed');
});
函数getOrders(状态、url){ $(函数(){ //检查url是否来自分页 如果(!url){ url=api_url+'/orders/?callback=?&status='+status; }否则{ url=root_url+url+'&回调=?'; } $.mobile.load('show'); $.getJSON(url,null,函数(d){ //声明一个用于构建输出的变量(最好缓冲输出,并且在最后只执行一次追加,因为DOM操作需要耗费CPU) var输出=“”; //遍历数据(我们也可以通过使用`for(key-in-data)在这里去掉jQuery){ $.each(d.对象、函数(索引、值){ 输出+='
  • '; }); $('#orders_list').html(输出).listview('refresh'); //如果已分页,则更新下一步按钮 如果(d.meta.next){ $(“#id_ordersNext”).attr('href',d.meta.next); $(“#id_ordersNext”).show(); }否则{ $(“#id_ordersNext”).hide(); } 如果(d.meta.先前){ $(“#id_ordersPrevious”).attr('href',d.meta.previous); $(“#id#u ordersPrevious”).show(); }否则{ $(“#id#u ordersPrevious”).hide(); } $(“#id_ordersTotal”).html(d.meta.total_count); $.mobile.load('hide'); }); }); } $(函数(){ //捆绑导航 $(“.order_nav”).die(); $(“.order_nav”).live('click',函数(){ $(“.order_nav”)。每个(函数(){ $(this.removeClass('ui-btn-active'); }); $(this.addClass('ui-btn-active'); getOrders($(this.attr('href')); 返回false; }); //绑定视图顺序 $(“.view_order”).die(); $(“.view\u order”).live('单击',函数(){ //保存变量 window.viewOrderReference=$(this.attr('id'); $.mobile.changePage(“view_order.html”); }); $(“#id#u ordersNext,#id#u ordersPrevious”).die(); $(“#id#u ordersNext,#id#u ordersPrevious”).live('click',function(){ getOrders(null,$(this.attr('href')); 返回false; }); //默认视图 获取订单(“下单”); }); 下面是我用于通过JQMobile加载的页面的html:

    <div data-role="page" data-needs-auth='true'>
        <script src="js/list_orders.js"></script>
        <div class="headerDiv" data-role='header' data-theme='b'><a href="index.html" data-icon="home">Home</a>
    
            <h1>Jubilee Distributors</h1>
            <a href="login.html" class="logged_in" data-icon="home">Login</a></div>
        <div data-role='navbar'>
            <ul>
                <li><a href="Order Placed" class='ui-btn-active order_nav' data-ajax="false">Placed</a></li>
                <li><a href="Order Picked" class='order_nav' data-ajax="false">Picked</a></li>
                <li><a href="Order Delivered" class='order_nav' data-ajax="false">Delivered</a></li>
            </ul>
        </div>
    
        <div data-role="content">
            <ul data-role='listview' id="orders_list" data-filter="true"><li>No records found</li></ul>
            <p><a href='#' id='id_ordersPrevious' style='display:none;' data-role="button" data-icon="arrow-l" data-iconpos="notext" data-inline="true">Previous</a> <span id='id_ordersTotal' class='record-count'></span> records found <a href='#' id='id_ordersNext' style='display:none;' data-role="button" data-icon="arrow-r" data-iconpos="notext" data-inline="true">Previous</a>
            </p>
        </div>
        <div id='footerDiv' data-role="footer"></div>
    </div>
    
    
    禧年经销商
    
    • 未找到任何记录 找到的记录

    这一切在桌面上的任何浏览器中都可以正常工作,但当我在安卓设备上运行它时,会发生2件事,或者说不会发生

  • $(function()-getOrders('Order Placed')中的最后一行似乎没有执行,或者如果执行了,则不会用返回的结果更新列表。如果单击带有“Orders Placed”的第一个链接,则不会出现问题
  • addClass实际上并没有添加该类
  • 正如我所说,这一切在任何桌面浏览器中都可以正常工作,但在Android设备上却不行

    有什么想法吗


    编辑:修复了第二个问题,但是第一个问题仍然存在。如果我导航到该页面,然后离开该页面,然后再次返回该页面,它就会工作。

    通过将dom就绪函数更改为pageinit,修复了此错误