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