我有代码,我硬编码......一切正常......然后我把它换成动态更新:
<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>
我用Google搜索并尝试了所提出的解决方案,但没有工作:
jQuery Mobile rendering problems with content being added after the page is initialized
http://jquerymobile.com/test/docs/pages/page-dynamic.html
我已经尝试了以上内容......我很想知道为什么以上不起作用......以及将会是什么以及为什么???
答案 0 :(得分:0)
在向列表视图添加新项目后,您需要致电listview('refresh')
。所以试试
$("#temp").append(items.join("")).listview("refresh");
而不是
$("#temp").append(items.join(""));
<强> Updating lists 强>
如果您将项目添加到列表视图,则需要调用refresh() 方法在其上更新样式并创建任何嵌套列表 加入。
这是有效的jsFiddle