我基于我从服务器获取的JSON字符串向JQ Mobile表添加行。
刷新后第一次进入页面时,没有添加任何样式,但是每次都可以正常工作。
有没有办法像列表视图那样刷新/初始化表格?
以下代码是我添加行的地方:
$.each(result, function() {
var imgString;
if(result[i]["status"] == 'Y') {
imgString = '<img src= images/checkMark.png height=\"40\" width=\"40\" align=\"middle\">';
} else {
imgString = '';
}
$('#pickupTable > tbody:last').append('<tr><td class=\"tableRow10\">' + imgString +
'<td class=\"tableRow80\"><a><button class=\"selectPickup\" pickupCode = \"'+
result[i]["id"] + '\"> '+ result[i]["address"] +'</button></a></td></tr>');
i++;
});
$('#pickupTable > tfoot:last').append('<tr><td colspan="5">Total Pick Ups: '
+result.length + '</td></tr>');
答案 0 :(得分:7)
你应能够使用:
$("#myTable").table("refresh");
但它尚未针对jquery mobile的1.3.0版实现。
请参阅https://github.com/jquery/jquery-mobile/issues/5570
听起来你必须在页面初始化之前添加行,或者在添加行之前不要设置表的属性 data-role =“table”。
$("#myTable").table();
在我正在开发的实现中,我允许用户添加行。对我来说幸运的是,该网站旨在使用更大的移动设备进行查看,因此我可以等待1.3.1
答案 1 :(得分:6)
我建议你使用.trigger('create');并刷新页面,jQM文档:
增强新标记
页面插件调度一个pagecreate事件,大多数小部件都使用它来自动初始化自己。只要 当引用widget插件脚本时,它会自动增强 它在页面上找到的小部件的任何实例。但是,如果您通过生成新标记客户端或加载内容 Ajax并将其注入页面,您可以触发create事件 处理其中包含的所有插件的自动初始化 新标记。这可以在任何元素(甚至是页面)上触发 div本身),为您节省了手动初始化每个插件的任务 (列表视图按钮,选择等)。
例如,如果加载了一个HTML标记块(比如一个登录表单) 通过Ajax,触发create事件自动转换 它包含的所有小部件(在这种情况下为输入和按钮) 增强版本。此方案的代码为:
$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );