从json加载<li>会丢失JQ格式</li>

时间:2014-06-05 12:45:01

标签: javascript jquery jquery-mobile

我通过jsonp为jquery移动应用加载数据。当我静态地执行它时,它可以正常工作并具有所有JQM格式。

然而,当我通过.append传递数据时,li项目没有格式化

<div data-role="content" class="listview-pets">
     <ul data-role="listview" id="listpetsList" data-inset="true"></ul>
</div>

包含它的UL。

代码是:

$.each(data, function(index) {
     $("#listpetsList").append("<li><a href=\"#select-pet-dialog\" data-rel=\"dialog\" data-selected=\"1\" data-transition=\"flip\"><img src='" + data[index].Picture + "'><h2>" + data[index].Name + "</h2><p>Type</p></li>");
});

我认为这与JQM预先设计元素有关,但我之后会注入。我怎么强迫它更新?

1 个答案:

答案 0 :(得分:2)

您缺少用于listview内容增强的功能:

改变这个:

$.each(data, function(index) {
    $("#listpetsList").append("<li><a href=\"#select-pet-dialog\" data-rel=\"dialog\" data-selected=\"1\" data-transition=\"flip\"><img src='" + data[index].Picture + "'><h2>" + data[index].Name + "</h2><p>Type</p></li>");
});

对此:

$.each(data, function(index) {
    $("#listpetsList").append("<li><a href=\"#select-pet-dialog\" data-rel=\"dialog\" data-selected=\"1\" data-transition=\"flip\"><img src='" + data[index].Picture + "'><h2>" + data[index].Name + "</h2><p>Type</p></li>");
});
$("#listpetsList").listview('refresh');

这个也可以工作:

$.each(data, function(index) {
    $("#listpetsList").append("<li><a href=\"#select-pet-dialog\" data-rel=\"dialog\" data-selected=\"1\" data-transition=\"flip\"><img src='" + data[index].Picture + "'><h2>" + data[index].Name + "</h2><p>Type</p></li>");
});
$("#listpetsList").enhanceWithin();

详细了解此主题 here