jquery mobile:显示多个数据过滤器

时间:2012-03-13 17:13:19

标签: javascript jquery html jquery-mobile

我正在尝试在jquery-mobile中创建一个listview控件,该控件能够扩展某些列表项并显示子项。我的目标是这个列表是可过滤的,jquery-mobile data-filter =“true”属性就足够了。不幸的是,它似乎是由<继承的。你&l;和< o l>里面的元素,我最终有多个过滤器控件。在jquery中是否有防止这种类型的继承的最佳实践?使用jquery删除无关的表单标签是一个有效的黑客,但我宁愿按照设计做。

这是一个简单的例子:

<div data-role="content">
  <div class="choice_list">
    <h2>Select an item</h2><br />
    <ul data-role="listview" data-inset="true" data-filter="true">
      <li><a>Item</a></li>
      <li data-role="collapsible">
        <h3>Super Item</h3>
        <ul data-role="listview" data-inset="true">
          <li><a>Sub Item</a></li>
        </ul>
      </li>
    </ul>
  </div>
</div>

请看一下这个JSFiddle的例子:http://jsfiddle.net/harlomic/SsJjS/3/

2 个答案:

答案 0 :(得分:2)

您可以使用CSS隐藏三个过滤器输入中的两个:

/*hide all of the search filter forms*/
#test .choice_list form.ui-listview-filter {
    display : none;
}

/*show just the first search filter form*/
#test .choice_list form.ui-listview-filter:nth-child(-n+3) {
    display : block;
}

以下是演示:http://jsfiddle.net/SsJjS/5/

请注意,test是找到列表视图的页面的ID,choice_list是列表视图的容器元素的类。

答案 1 :(得分:1)

我也遇到过JQM中嵌套列表的同样问题。

我搞砸了它,如果你从你的额外&lt;删除data-role =“listview” ul&gt;这将解决您的问题,但是,您将失去您的JQM样式,而这不是您正在寻找的。我们都想要JQM的光滑布局和样式。

JQM应该修复此问题,因为我也觉得这可能是一个错误,因为我在文档中没有找到任何关于此的内容。