【问题标题】:jquery mobile listview refresh doesn't refilter jqm 1.4jquery mobile listview refresh不会重新过滤jqm 1.4
【发布时间】:2014-01-19 18:47:58
【问题描述】:

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

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');
});

过滤,然后点击测试按钮,然后返回,你会看到过滤器不起作用。我尝试在过滤器上触发更改功能,但这也不起作用。有什么想法可以让列表视图根据输入再次过滤吗?

【问题讨论】:

  • 注意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


【解决方案1】:

奥马尔上面的最后一条评论奏效了。我没有意识到我应该调用一个单独的小部件刷新。

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

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

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-16
    • 2013-08-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多