jQuery Mobile设置ListView的属性
“埃洛·斯塔克弗尔斯 这就是我的设想: 我使用jQuery Mobile设置ListView的属性,listview,jquery-mobile,attributes,Listview,Jquery Mobile,Attributes,“埃洛·斯塔克弗尔斯 这就是我的设想: 我使用localStorage填充ListView。填充该列表视图并“刷新”它的所有内容都正常工作。但是 现在,如果在列表视图中添加了5个以上的元素,我想添加一个搜索栏。这是我的当前代码(不工作): 当我取消注释警报时,它会正确触发。在这两行后面添加.listview('refresh')似乎也不起作用 我做错了什么 提前谢谢。不幸的是,这行不通jQuery Mobile将无法向现有列表视图动态添加筛选器 但是有一个解决办法。在填充listview之前,请
localStorage
填充ListView
。填充该列表视图并“刷新”它的所有内容都正常工作。但是
现在,如果在列表视图中添加了5个以上的元素,我想添加一个搜索栏。这是我的当前代码(不工作):
当我取消注释警报
时,它会正确触发。在这两行后面添加.listview('refresh')
似乎也不起作用
我做错了什么
提前谢谢。不幸的是,这行不通jQuery Mobile
将无法向现有列表视图动态添加筛选器
但是有一个解决办法。在填充listview之前,请计算要填充的元素的数量,如果数量为5或更多,请删除当前listview并在同一位置追加新的listview。这是另一件奇怪的事情,如果您从头开始创建一个listview(记住过滤器),过滤器将成功生成
我给你举了个例子:
你可以在这个中找到更多关于这个问题的信息,这是我的个人博客。或者找到它。查找名为:标记增强问题完美的一章。谢谢它有点不同,但方法相同(使用jQuery创建ListView,而不是在HTML中创建它)。
if (resultLength > 5)
{
// alert('5 or more elemnts found.');
$("#ConnectionList").attr("data-filter", true);
$("#ConnectionList").attr("data-filter-placeholder", "Search...");
}
$(document).on('pagebeforeshow', '#index', function(){
$('<ul>').attr({'id':'test-listview','data-role':'listview', 'data-filter':'true','data-filter-placeholder':'Search...'}).appendTo('#index [data-role="content"]');
$('<li>').append('<a href="#">Audi</a>').appendTo('#test-listview');
$('<li>').append('<a href="#">Mercedes</a>').appendTo('#test-listview');
$('<li>').append('<a href="#">Opel</a>').appendTo('#test-listview');
$('#test-listview').listview().listview('refresh');
});
cannot call methods on listview prior to initialization