1

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

它可以工作,但不能在 .

有谁现在我可以解决这个问题?

亲切的问候,汤姆

4

2 回答 2

0

孩子/孩子的选择可能会让它有点失望,试一试,看看是否有所作为。

$('#output ul').append(..........);

由于您在加载 DOM 后将这些列表项附加到列表中,并且正在使用 jQueryMobile,因此您必须向该元素的函数链添加一个附加项。像这样:

$('#output ul').append(..........).trigger('create');

Create 是一个 jquery 移动事件。最初加载 DOM 时触发它,为加载时 DOM 中的所有元素设置样式。但是,通过添加新的样式,它们将不会具有样式,因为 jquerymobile 不通过常规样式表关系依赖 css。它使用样式表进行样式设置,但根据容器类型示例应用样式

data-role="header"在加载 dom 后设置样式,因此即使您使用带有 CSS 的常规方法设置特定元素的样式,jquery mobile 也会在 DOM 准备好后覆盖它

于 2012-09-16T18:37:43.313 回答
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>   
于 2012-09-18T08:48:23.183 回答