0

我有硬编码的代码……一切正常……然后我将其换成动态更新:

<script>
  var items = [];

  $.getJSON('initialize.json', function(data) {
    $.each(data["home"], function(key, val) {

      var tmp1 = '';
      var tmp2 = '';

      $.each(val["group"], function(key2, val2) {
        tmp1 += key2 + "/";
        tmp2 += val2 + "/";
      });

      items.push('<li><a href="#">'+key+' ('+tmp1.slice(0, -1)+')<br /><small>Completed '+tmp2.slice(0, -1)+' days ago</small><span class="ui-li-count">'+val["total"]+'</span></a></li>');
    });

    $("#temp").append(items.join(""));
  });      
</script>

这是容器:

    <ul id="temp" data-role="listview" data-theme="c">
      <!-- Populated dynamically -->
    </ul>

我已经用谷歌搜索并尝试了建议的解决方案,但没有任何工作:

页面初始化后添加内容的 jQuery Mobile 渲染问题

http://jquerymobile.com/test/docs/pages/page-dynamic.html

我已经尝试过上述方法......我很想知道为什么上述方法不起作用......以及会发生什么以及为什么?

4

1 回答 1

0

listview('refresh')将新项目添加到列表视图后,您需要调用。所以试试

$("#temp").append(items.join("")).listview("refresh");

代替

$("#temp").append(items.join(""));

更新列表

如果将项目添加到列表视图,则需要对其调用 refresh() 方法来更新样式并创建添加的任何嵌套列表。

这是工作的jsFiddle

于 2013-02-10T07:39:15.687 回答