1

我正在使用 jQueryMobile 开发一个 PhoneGap 应用程序。我的问题是listview在相册页面上没有正确显示,而是在主页上。我data-theme对两者都使用相同的。

问题:为什么第二页的列表视图显示不正确(背景、字体、图标)?

研究:

  1. 关于缩略图列表视图的 jQueryMobile 文档(我想要完成的工作)
  2. listview关于api的 jQueryMobile 文档
  3. 谷歌搜索并找到了一个关于如何做到这一点的教程(没有变化)

专辑页面代码

    <div data-role="page" id="albums" data-url="albums" data-theme="a">
        <div data-role="header">
            <a href="#home" data-role="button" data-corners="true" data-shadow="true">Back</a>
            <h1>Albums</h1>
            <button id="albums-refresh">Refresh</button>
        </div>
        <div data-role="content">
            <ul id="albums-content" data-role="listview" data-inset="true"></ul>
        </div>
    </div>

jQuery函数动态填充listview

Load: function () {
    $("#albums-content").empty();
    $.ajax({type: "GET", url: "https://itunes.apple.com/lookup?id=356541460&entity=album", data: {get_param: "results"}, dataType: "json", success: function (data) {$.each(data, function (index, element) {$.each(this, function (index, element) {if (element.wrapperType === "collection") {$("#albums-content").append("<li><a id='a-" + index + "' href='#album-details'><img src='" + element.artworkUrl100 + "' />" + element.collectionName + "</a>"); $("#a-" + index).bind('click', function (index) {Albums.AlbumID = index; }); }}); }); }});
}

PhoneGap 调试:

在此处输入图像描述

专辑页面 请注意,紫色背景和橙色文本不存在,但您可以在第二张专辑下方看到淡淡的listview阴影暗示。

在此处输入图像描述

4

3 回答 3

2

在 ajax 调用的成功函数中,您需要调用 listview 元素的 refresh 方法,以便正确更新和呈现 UI。

http://jquerymobile.com/demos/1.2.0/docs/lists/lists-methods.html

于 2013-01-29T08:44:05.590 回答
2

您必须确保的一件事:将所有内容附加到列表视图后,您必须添加以下代码

$("ul#albums-content").listview("refresh");

这是为了更新样式并创建添加的任何嵌套列表。

于 2013-01-29T08:40:40.080 回答
2

这个问题有一个简单的解决方案(下次进一步查看 jQM 文档)。

当在列表视图中动态创建对象时,jQuery Mobile它的标记也需要像这样增强:

$('#some-listview').listview('refresh');

基本上每次将动态内容添加到 jQuery Mobile 页面时都需要手动增强。如果您想了解有关此主题的更多信息,请查看我的博客文章。或者你可以在这里找到它。

于 2013-01-29T08:41:18.300 回答