Jquerymobile Json listview

时间:2012-09-16 18:21:10

标签: json html5 jquery mobile

我使用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>

它有效但不在内部。

现在有人如何解决这个问题?

亲切的问候, 汤姆

2 个答案:

答案 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>