带有filter显示的jQueryMobile列表视图,单击显示项目

我有一个使用数据filter显示function使用jqueryMobile创建的列表视图。 此function隐藏列表元素,并在您键入时显示与输入字符匹配的元素。 我的数据源是本地的(意味着列表是静态填充的)。

我想要做的是显示所有项目而不需要输入任何字符,但是当列表本身获得焦点时(并在它丢失时隐藏它们)。

我知道我可以只是jQuery所有元素并自己进行显示/隐藏,但我想知道是否有一个我不知道的开箱即用的解决方案。

没有开箱即用的解决方案,但是,您可以执行以下操作。

聚焦 input ,设置.listview( "option", "filterReveal", true ); 并通过添加ui-screen-hidden jQM类手动隐藏所有列表视图项。 模糊时 ,反转上一个操作。

注意filterReveal在jQM 1.4.0中已弃用,将在1.5.0中删除。

 var list = $("#list"); $("input").on("focus", function () { $(this).val(""); list.listview("option", "filterReveal", false); list.children().removeClass("ui-screen-hidden"); list.listview("refresh"); }).on("keydown", function () { list.listview("option", "filterReveal", true); list.children().addClass("ui-screen-hidden"); list.listview("refresh"); }); 

演示