我有一个像这样过滤的jquery列表:
<ul id="myFilteredList" data-role="listview" data-filter="true">
<li data-theme="b" id="Li0" data-filtertext="selected_"><a href="#">Li element 1 </a></li>
<li data-theme="b" id="Li1" data-filtertext="selected_"><a href="#">Li element 2 </a></li>
<li data-theme="b" id="Li2" data-filtertext="selected_"><a href="#">Li element 3 </a></li>
<li data-theme="b" id="Li3" data-filtertext="selected_"><a href="#">Li element 4 </a></li>
<li data-theme="b" id="Li4" data-filtertext="selected_"><a href="#">Li element 5 </a></li>
</ul>
属性 data-filtertext =“selected _”可以通过编程方式更改( data-filtertext =“selected_ blocked _”)
<li data-theme="b" id="Li4" data-filtertext="selected_ blocked_"><a href="#">Li element 5 </a></li>
使用此代码:
$('#myFilteredList').children('#Li4').attr('data-filtertext', 'selected_ blocked');
$('#myFilteredList').listview('refresh');
问题是,当我尝试过滤阻止元素时,它不显示 Li element 5 ,我缺少什么?
在这里演示:http://jsfiddle.net/SU6xY/
重现的步骤:
仅在从不过滤列表时才有效。如果您尝试过滤然后应用新的data-filtertext,则过滤器不起作用。
答案 0 :(得分:2)
失去:
$('#myFilteredList').listview('refresh');
你在这里不需要它,它用于重新设计列表视图。
没有它,它正在我的jsFiddle示例中工作:http://jsfiddle.net/Gajotres/5f3By/
如果您的内容是动态添加的,那么在列表视图刷新后修改data-filtertext。
答案 1 :(得分:0)
我不确定这是否是解决方案,但您可以尝试使用jQuery .data()方法更改数据属性的值?