我有一个带有data-filter="true"
属性的无序列表。
如何在筛选框为空时隐藏列表项?
我应该覆盖默认的列表视图行为吗?如何?
这实际上是一种解决方法,以便在每个可折叠块中过滤带有UL的可折叠集。我最后要做的是显示带有隐藏内容的数据过滤器和可折叠集,因此如果用户选择使用过滤器,则应隐藏可折叠集,并且仅显示过滤结果。
提前致谢...
答案 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");
}
});