次のようなフィルタリングされた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 要素 5が表示されないことです。何が欠けていますか?
デモはこちら: http://jsfiddle.net/SU6xY/
再現する手順:
- デモに移動します。
- フィルターバーでタイプがブロックされ、結果には Lielement 2 が表示されます
- Alter Filter ボタンを押すと、li2 エレメント フィルタが none に、li4 エレメント フィルタがブロックされた状態に変更されます。
- フィルター バーで再度入力をブロックすると、まだ Lielement 2 と表示され、Lielement 4 と表示される必要があります
リストがフィルタリングされていない場合にのみ機能します。フィルタリングしてから新しい data-filtertext を適用しようとすると、フィルターが機能しません。