jQueryMobile列表视图,带过滤器显示,单击显示项目

jQueryMobile列表视图,带过滤器显示,单击显示项目,jquery,jquery-mobile,Jquery,Jquery Mobile,我用jqueryMobile创建了一个listview,它使用数据过滤器显示功能。此功能隐藏列表元素,并在键入时显示与输入字符匹配的元素。我的数据源是本地的(意味着列表是静态填充的) 我想做的是显示所有项目,而不需要输入任何字符,但当列表本身获得焦点时(并在丢失时隐藏它们) 我知道我可以直接jQuery所有元素并自己进行显示/隐藏,但我想知道是否有现成的解决方案,我不知道。没有现成的解决方案,但是,您可以执行以下操作 当聚焦输入时,设置.listview(“选项”,“过滤器预览”,true)

我用jqueryMobile创建了一个listview,它使用数据过滤器显示功能。此功能隐藏列表元素,并在键入时显示与输入字符匹配的元素。我的数据源是本地的(意味着列表是静态填充的)

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


我知道我可以直接jQuery所有元素并自己进行显示/隐藏,但我想知道是否有现成的解决方案,我不知道。

没有现成的解决方案,但是,您可以执行以下操作

当聚焦
输入时,设置
.listview(“选项”,“过滤器预览”,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");
});


您使用的是哪个版本?我使用的是jquery mobile 1.3.2和jquery 1.9.1。这并不是我所要求的,我希望输入隐藏列表,但在获得焦点时立即显示,而不仅仅是在键入第一个字符时。但我想我可以从你的例子中得到它。谢谢。@kelmer这会隐藏聚焦后的元素。最初,您希望隐藏列表项,并在焦点上显示它们?编辑: