Android JQuery移动列表视图
我用代码拉入一些数据以在listview中使用时遇到了两个奇怪的问题。以下是我的javascript: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
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件事,或者说不会发生
编辑:修复了第二个问题,但是第一个问题仍然存在。如果我导航到该页面,然后离开该页面,然后再次返回该页面,它就会工作。通过将dom就绪函数更改为pageinit,修复了此错误