无法让 .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 吗?