我试图动态地将一些内容添加到jQuery Mobile中可折叠<li>
项目中的复选框列表。我不能用漂亮的圆角和分组项目得到正确的格式。当我在叶级别添加其他元素时,情况会变得更糟。在jQuery Mobile中添加动态内容时正确格式化
Here是显示问题(添加jQuery和jquerymobile脚本和CSS在标题很明显)的例子:我试过,来电后添加.page()
到append()
<body>
<div data-role="page" id="page">
<ul id="listList" data-role="listview">
<li id="list1" data-role="collapsible">
<h3>list 1</h3>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" id="fs1">
<input type="checkbox" id="cb1" /><label for="cb1">text</label></fieldset></div></li>
<li id="list2" data-role="collapsible">
<h3>list 2</h3>
<p>here comes another list of checkboxes...</p></li></ul>
<input type="button" onclick="addCheckbox();" value="add a checkbox to list1" /></div>
</body>
<script>
function addCheckbox() {
$("#list1 fieldset").append('<input type="checkbox" id="cb2" /><label for="cb2">More text</label>');
}
</script>
,但它不能正常工作,虽然好一些。
除了我的例子,通用的问题是如何在jQuery Mobile使用DOM结构后动态地将内容追加到DOM树中。我相信存在一个“jquerymobilizes”部分树的功能,但我找不到它。
非常感谢您的帮助!
编辑:总之,我想动态添加元素融入listview
的一个<li>
元素,而不是试图元素添加到列表本身。刷新listview
在这里似乎没有帮助。
编辑2:我得到一个有点接近,因为我找到了.trigger("create")
功能,可以链接到.append()
(CF JQM FAQ)。使用下面的脚本,虽然data-role="controlgroup"
没有提供正确的格式与漂亮的圆角框,但它的效果稍好。
$("#list1 fieldset").append('<input type="checkbox" id="cb2" /><label for="cb2">More text</label>').trigger("create");
我将发布完整的答案,如果我在某些时候到达那里。
编辑3:这是我的例子jsFiddle
PS:我也想知道为什么复选框似乎被禁用,并且在我的例子中默认情况下可折叠项目没有折叠,但这是次要的。 – 2012-02-26 20:31:58