4

我正在根据从服务器获取的 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>');
4

2 回答 2

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

于 2013-03-13T17:45:55.783 回答
6

我建议你使用 .trigger('create'); 并刷新页面,jQM Docs:

增强新标记
页面插件调度一个 pagecreate 事件,大多数小部件使用该事件来自动初始化自己。只要引用了小部件插件脚本,它就会自动增强它在页面上找到的小部件的任何实例。

但是,如果您在客户端生成新的标记或通过 Ajax 加载内容并将其注入页面,则可以触发 create 事件来处理新标记中包含的所有插件的自动初始化。这可以在任何元素(甚至是页面 div 本身)上触发,从而为您节省手动初始化每个插件(listview 按钮、选择等)的任务。

例如,如果通过 Ajax 加载了 HTML 标记块(例如登录表单),则触发 create 事件以自动将其包含的所有小部件(在本例中为输入和按钮)转换为增强版本。这种情况的代码是:

$( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" );
于 2012-02-17T23:24:33.917 回答