更改jQuery mobile中数据过滤器的默认行为

时间:2012-08-13 20:32:56

标签: jquery listview jquery-mobile

我有一个带有data-filter="true"属性的无序列表。 如何在筛选框为空时隐藏列表项? 我应该覆盖默认的列表视图行为吗?如何?

这实际上是一种解决方法,以便在每个可折叠块中过滤带有UL的可折叠集。我最后要做的是显示带有隐藏内容的数据过滤器和可折叠集,因此如果用户选择使用过滤器,则应隐藏可折叠集,并且仅显示过滤结果。

提前致谢...

1 个答案:

答案 0 :(得分:0)

遗憾的是,没有办法覆盖jquery mobile的默认行为。您需要在jquery移动代码之上添加处理。尝试以下方法:

为此,您需要按如下方式定义样式表:

  .ui-hidden-component {
    display: none !important;
  }

并添加以下脚本代码:

$(document).delegate('[data-role="page"]', 'pageinit', 
      function() { 
        var $listview = $(this).find('[data-role="listview"][data-filter="true"]'); 
        $(this).delegate('input[data-type="search"]', 'keyup change', 
          function () { 
            var $this = $(this); 
            if ($this.val() == '') {
              $listview.children().addClass("ui-hidden-component");
            } else {
              $listview.children().removeClass("ui-hidden-component");
            }
          });
        if ($('input[data-type="search"]').val() == '') {
          $listview.children().addClass("ui-hidden-component");
        }
    });