Listview jquery移动列表视图刷新不';t再过滤器jqm 1.4

Listview jquery移动列表视图刷新不';t再过滤器jqm 1.4,listview,jquery-mobile,filter,Listview,Jquery Mobile,Filter,我有一个使用数据输入属性提供过滤器的列表视图。动态更改listview后,我调用listview刷新。即使过滤器输入中仍有文本,也不会应用过滤器。你可以从这把小提琴中看出问题所在: 以下是设置它的html: <div id="aPage" data-role="page"> <div data-role="content"> <form> <input data-type="search" type="t

我有一个使用数据输入属性提供过滤器的列表视图。动态更改listview后,我调用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>

  • aaa
  • bbb
返回
以下是返回页面时运行的动态加载和刷新:

$(document).on('pagebeforeshow', '#aPage', function() {
    $('#aList li').remove();
    $('#aList').append($("<li>").append('aaa'));
    $('#aList').append($("<li>").append('bbc'));
    $("#aList").listview('refresh');
});
$(文档).on('pagebeforeshow','#aPage',function(){
$('#aList li')。删除();
$(“#aList”).append($(“
  • ”).append('aaa'); $(“#aList”).append($(“
  • ”).append('bbc'); $(“#列表”).listview('refresh'); });

  • 过滤器,然后单击测试按钮,然后返回,您将看到过滤器不工作。我已经尝试在过滤器上触发一个更改函数,但这也不起作用。有什么办法可以让listview根据输入再次过滤吗?

    Omar在上面的最后一条评论奏效了。我不知道有一个单独的小部件,我应该调用刷新

    $("#aList").filterable("refresh"); 
    
    这将保留现有筛选器并刷新列表以反映筛选器的结果


    谢谢。

    注意js代码中的更改您的更改的问题是我不想清除过滤器,我想保留现有的过滤器
    data filter=“true”
    从1.4开始就被弃用,并将在1.5上删除。您最好在1.4中使用filterable小部件。我正在使用filterable小部件。尽管他们说data filter=“true”已被弃用,但filterable小部件在没有它的情况下不会过滤。在这种情况下,您需要使用
    .filterable(“刷新”)
    。检查这个答案