我有一个listview,使用data-input属性来提供过滤器。动态更改列表视图后,我调用listview刷新。即使滤镜输入中仍有文本,也不会应用滤镜。你可以在这个小提琴中看到问题:
以下是设置它的html:
<div id="aPage" data-role="page">
<div data-role="content">
<form>
<input data-type="search" type="text" id="aFilter" />
</form>
<ul id="aList" data-role="listview" data-filter="true" data-input="#aFilter">
<li>aaa</li><li>bbb</li>
</ul>
<a data-role='button' href='#bpage'>test</a>
</div>
</div>
<div data-role='page' id='bpage'>
<div data-role="header">
<a data-rel="back" data-role="button">Back</a>
</div>
</div>
以下是返回页面时运行的动态加载和刷新:
$(document).on('pagebeforeshow', '#aPage', function() {
$('#aList li').remove();
$('#aList').append($("<li>").append('aaa'));
$('#aList').append($("<li>").append('bbc'));
$("#aList").listview('refresh');
});
过滤,然后单击测试按钮,然后返回,您将看到过滤器不起作用。我已经尝试在过滤器上触发更改功能,但这也不起作用。任何想法如何让listview根据输入再次过滤?
答案 0 :(得分:0)
奥马尔的上述评论起了作用。我没有意识到有一个单独的小部件我应该调用刷新。
$("#aList").filterable("refresh");
保留现有过滤器并刷新列表以反映过滤器的结果。
感谢。