【发布时间】:2014-01-19 18:47:58
【问题描述】:
我有一个使用 data-input 属性提供过滤器的列表视图。动态更改列表视图后,我调用列表视图刷新。即使过滤器输入中仍有文本,但不会应用过滤器。您可以在这个小提琴中看到问题:
这是设置它的 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');
});
过滤,然后点击测试按钮,然后返回,你会看到过滤器不起作用。我尝试在过滤器上触发更改功能,但这也不起作用。有什么想法可以让列表视图根据输入再次过滤吗?
【问题讨论】:
-
注意js代码的变化jsfiddle.net/Palestinian/7Pqe9/6
-
你修改的问题是我不想清除过滤器,我想保留现有的过滤器
-
data-filter="true"自 1.4 起已弃用,并将在 1.5 上删除,您最好在 1.4 中使用 filterable 小部件。 -
我正在使用可过滤的小部件。尽管他们说 data-filter="true" 已被弃用,但可过滤的小部件没有它就无法过滤
-
在这种情况下您需要使用
.filterable("refresh")。检查这个答案stackoverflow.com/questions/20971913/…
标签: listview jquery-mobile filter