在jquery mobile </ul> </li>中动态添加<li>到<ul>

时间:2011-05-08 05:36:10

标签: jquery html5 jquery-mobile

我正在尝试将列表项添加到jquery mobile中的无序列表,但似乎没有正确创建格式。

<ul data-role="listview" data-theme="c" data-dividertheme="b">
                    <li data-role="list-divider">
                        Title Divider
                    </li>
                    <li>
                        <a href="test.html" data-transition="slide">List item 1</a>
                    </li>

 </ul>

脚本:

$('ul').append('<li><a>hello</a></li>');

由于某种原因,动态生成的li不会显示与静态创建的li相同的方式。有谁知道为什么以及如何让它变得一样?

5 个答案:

答案 0 :(得分:87)

试试这个:

$('ul').append($('<li/>', {    //here appending `<li>`
    'data-role': "list-divider"
}).append($('<a/>', {    //here appending `<a>` into `<li>`
    'href': 'test.html',
    'data-transition': 'slide',
    'text': 'hello'
})));

$('ul').listview('refresh');

答案 1 :(得分:44)

提供的答案结果有点混乱......

$('ul').append('<li><a>hello</a></li>');没问题,但需要刷新列表视图,所以你只需要:

$('ul').append('<li><a>hello</a></li>').listview('refresh');

答案 2 :(得分:2)

如果你想改变UL的属性,你可能不得不为封闭的div调用.trigger('create')。这可以确保在重置属性的情况下再次创建UL。

答案 3 :(得分:0)

你的&lt; a&gt;标签未引用网页。

尝试:

$('ul').append('<li><a href="test2.html' data-transition="slide" />List Item 2</li>');

答案 4 :(得分:0)

您必须在列表标记

中添加一个类
$('<ul>').append( $('<li>').attr('class','ui-li ui-li-static ui-btn-up-c ui-li-last').append('hello'))  ;

JQuery mobile会自动在列表项中添加一个类,如果您在firefox中运行页面并使用firebug进行调试,则可以看到该类。选择已应用的任何类,并将其添加到动态生成的li标签中。