我使用jquerymobile,现在我想把li放到带有json的ul listview中。
我必须遵守代码:
<script type="text/javascript">
$(function() {
$(document).ready(function(){
$.getJSON("url",function(data) {
$.each(data.posts, function(i,data){
$('#output').children('ul').append('<li><a href="#">'+data.title+'</a></li>');
});
}
);
return false;
});
});
</script>
<div data-role="content">
<div class="content-primary">
<div id="output">
<ul data-role="listview">
</ul>
</div>
</div>
</div>
它有效但不在内部。
现在有人如何解决这个问题?
亲切的问候, 汤姆
答案 0 :(得分:0)
孩子/孩子的选择可能会稍微抛弃它,尝试一下,看看是否有所作为。
$('#output ul').append(..........);
由于在加载DOM之后将这些列表项附加到列表中,并且正在使用jQueryMobile,因此您必须向元素的函数链添加一个附加项。像这样:
$('#output ul').append(..........).trigger('create');
Create是一个jquery移动事件。在最初加载DOM时触发,在加载DOM时设置DOM中的所有元素。然而,通过添加新的,他们将没有样式,因为jquerymobile不依赖于传统样式表关系的CSS。它使用样式表进行样式设置,但样式将根据容器类型示例
进行应用 在加载dom之后 data-role="header"
被设置为样式,所以即使你使用CSS的传统方法设置特定元素,jquery mobile也会在DOM准备好后覆盖它
答案 1 :(得分:0)
我解决了这个问题:
<script type="text/javascript">
$(function() {
$(document).ready(function(){
$.getJSON("url",function(data) {
$.each(data.posts, function(i,data){
$('#output ul').append('<li></li>');
});
$('#output ul').listview('refresh');
}
);
});
});
</script>