无法让 .listview('refresh') 和 .trigger("updatelayout") 工作

Posted

技术标签:

【中文标题】无法让 .listview(\'refresh\') 和 .trigger("updatelayout") 工作【英文标题】:Not able to get .listview('refresh') and .trigger( "updatelayout") working无法让 .listview('refresh') 和 .trigger("updatelayout") 工作 【发布时间】:2015-03-30 10:13:09 【问题描述】:

我正在使用 Ajax 检索数据并填充我的列表。但我无法让 jQuery Mobile 添加样式列表所需的类,或刷新列表 如果我进行新搜索(旧结果仍在列表中)。

我在 Stack 上找到了很多类似的 Q/A,但没有一个解决方案有效。我还没有实现整个解决方案found over at jQuery Mobile,但我相信这应该可以工作吗?

我是否建立了错误的列表? I have a fiddle here

// html
<ul id="brandList" class="front" data-role="listview" data-inset="true"></ul>

// JS
var el = Part.mainSearchResult();

$(response.brands).each(function()
    var brand = $(this)[0];
    var url = '/brand?id=' + brand.id;
    var li = $(el.brand).clone();

    $(li).find('a').prop('href',url);
    $(li).find('a').text(brand.name);
    $('#brandList').append(li);
);

$('#brandList').listview('refresh');
$('#brandList').trigger( "updatelayout");

【问题讨论】:

【参考方案1】:

您的 Fiddle 中的代码有错误,您在 CSS 部分中有 UL。

在 CSS 部分,而不是 HTML:

<ul id="mylist" class="front" data-role="listview" data-inset="true"></ul>

似乎正在工作,并且正在将类添加到 UL。

Updated JS Fiddle

编辑:

你需要在测试函数内部调用$('#mylist').listview( "refresh" );

NEW FIDDLE

【讨论】:

谢谢。只是累了。我已经更新了链接和我的问题。真正的问题是为什么 jQuery Mobile 不附加样式和刷新列表。 我不知道发生了什么 - 但我发誓我已经尝试过了!但你的魔法有效。谢谢。您是否知道我可以如何更新 ui-search 面板?当我的列表很长时,它超出了我的列表面板。见prntscr.com/5z3wgc。此外,旧搜索不会从列表中删除:prntscr.com/5z3xdm。我已经用自定义代码解决了这两个问题,但我希望 JQM 能解决这个问题。 @Steven NP。我有过这样的好几次!您应该能够使用相同类型的逻辑。 $('选择器').panel('刷新')。

以上是关于无法让 .listview('refresh') 和 .trigger("updatelayout") 工作的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不使用 ScrollView/ListView 的情况下使用 Pull to Refresh 吗?

如何实现Android Pull-to-Refresh

Nativescript 无法让 ListView 滚动到底部

无法让 ListView 显示初始选定项目

我无法让 ListView 显示文件夹中的文件名

jquery mobile各类标签的refresh