【发布时间】:2015-02-03 17:09:31
【问题描述】:
我可以看到这个问题是bug in v1.3,但已得到修复。但是我现在在使用 JQM 1.4 时遇到了这个问题。
在我的 HTML 中,我有以下代码:
<ul class="storeList"
data-role="listview"
data-inset="true"
data-filter="true"
data-enhanced="true"
data-input="#store-filter"></ul>
data-enhanced="true" 指示可过滤小部件在实例化期间跳过这些 DOM 操作
然后在 jQuery 中,我使用 Ajax(在页面加载时)获取数据并动态添加列表项:
// loop
// If user is in city A, hideItem = True
if(hideItem) {
$(li).attr('class', 'ui-screen-hidden');
}
storeList.append(li);
// loop-end
// listview needs to be initialized before it can be enhanced/refreshed.
// That's why we do a .listview() first then .listview('refresh')
$('.storeList').listview().listview('refresh');
问题在于.listview('refresh') 删除了ui-screen-hidden 类。
Filterable Widget 上有一些关于此的内容(请参阅Providing pre-rendered markup 部分),但我不知道。
任何帮助表示赞赏。
【问题讨论】:
-
当您添加列表项时,它们最初是否因为不符合当前输入的过滤条件而被隐藏?还是您正在尝试进行显示/自动完成之类的事情?
-
是的。我知道用户在哪个城市,所以我在页面加载时隐藏了其他列表项。我现在已经破解了这个并添加了我自己的隐藏元素并且它可以工作。我想我实际上必须这样做,因为如果我只使用
ui-screen-hidden,一旦我开始使用自动完成功能,自动填充功能就会删除这个类。 -
顺便说一句,我刚刚找到了这个:jquerymobile.com/upgrade-guide/1.4,上面写着
Widgets that don't have option enhanced (yet) are: Listview, Selectmenu, Panel, Toolbar, Navbar, and Slider.,我不知道这个文件有多老,是否已经实施。 -
你能不能把城市写进过滤框然后调用.filterable("refresh");以便可过滤小部件隐藏列表项?
-
在@ezanker下方查看我的答案
标签: jquery listview jquery-mobile