第一次玩 jQuery Mobile,但使用了一点 jQuery。希望得到一些快速的建议。
我正在解析头部中的一些 xml,并将数据作为列表写入带有 <li> 标签的 div 中。该列表出现在那里,但没有使用 jQuery Mobile 的默认样式进行格式化。我确定这是我做错的事情,但无法弄清楚我需要做什么才能应用该样式,或者我可能需要在“准备好”之外获取数据。这是我的代码。
这一定是一件很简单的事情,以至于我错过了。如果我在 HTML 中的 <li> 标记中进行硬编码,它可以正常工作,但如果我使用 use .append() 它不会显示列表的格式。
真的很感激你可能有的任何提示。
<!DOCTYPE html>
<html>
<head>
<title>Chart</title>
<link rel="stylesheet" href="css/jquery.mobile-1.0a2.min.css" />
<script src="js/jquery-1.4.4.min.js"></script>
<script src="js/jquery.mobile-1.0a2.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "xml/vc-data.xml",
dataType: "xml",
success: function(xml){
// build country list
var currentCountry = "";
var currentRegion = "";
$("#countries").html('<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b"></ul>');
$(xml).find("charts").each(function()
{
var country = $(this).find('country').text();
var region = $(this).find('region').text();
if(currentCountry != country) {
//countryList += "<li><a href='#'>" + country + "</a></li>";
$("<li data-role='list-divider'></li>")
.html(country)
.appendTo("#countries ul");
}
if(currentRegion != region) {
$("<li></li>")
.html("<a href='#'>" + region + "</a>")
.appendTo("#countries ul");
}
currentCountry = country;
currentRegion = region;
});
}
});
});
</script>
</head>
<body>
<!-- Start of first page -->
<div data-role="page">
<div data-role="header">
<h1>Charts</h1>
</div><!-- /header -->
<div data-role="content" id="countries" >
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
嘿。非常感谢这个回复。我想我是用错误的关键字搜索的,因为我在任何地方都找不到这个,而且在过去的几天里一直卡住。我真的很感谢这里的帮助。我正要继续使用 jqTouch 作为一种选择,但我很想让它发挥作用。我想我快到了。
我试着添加这个:
$("#countries > ul").page();
但它没有影响任何东西。
然后我补充说:
$("#countries div > ul").page();
这影响了链接颜色,但根本没有用间距等设置行的样式。
然后,我进行了更多挖掘,并在我错过的文档中找到了这一点:
如果将项目添加到列表视图,则需要对其调用 refresh() 方法来更新样式并创建添加的任何嵌套列表。例如,$('ul').listview('refresh');
所以我用这一行替换了 page(),它工作得很好。
$("#countries div > ul").listview('refresh');