jquery移动列表视图刷新不重新过滤jqm 1.4

时间:2014-01-19 18:47:59

标签: listview jquery-mobile filter

我有一个listview,使用data-input属性来提供过滤器。动态更改列表视图后,我调用listview刷新。即使滤镜输入中仍有文本,也不会应用滤镜。你可以在这个小提琴中看到问题:

http://jsfiddle.net/7Pqe9/3/

以下是设置它的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根据输入再次过滤?

1 个答案:

答案 0 :(得分:0)

奥马尔的上述评论起了作用。我没有意识到有一个单独的小部件我应该调用刷新。

$("#aList").filterable("refresh"); 

保留现有过滤器并刷新列表以反映过滤器的结果。

感谢。