残念ながら、これはうまくいきません。jQuery Mobile
フィルターを既存のリストビューに動的に追加することはできません。
しかし、回避策があります。リストビューにデータを入力する前に、入力しようとしている要素の数をカウントします。番号が 5 以上の場合は、現在のリストビューを削除し、同じ場所に新しいリストビューを追加します。これは別の奇妙なことです。(フィルターを念頭に置いて) リストビューを最初から作成すると、フィルターが正常に生成されます。
私はあなたのために例を作りました: http://jsfiddle.net/Gajotres/SS7vJ/
$(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');
});
また、.listview( を 2 回呼び出すことを忘れないでください。最初は refresh パラメータなしで、2 回目は refresh パラメータを指定して呼び出します。これがないと、次のエラーが発生します。
cannot call methods on listview prior to initialization
この問題の詳細については、このARTICLEを参照してください。わかりやすくするために、これは私の個人的なブログです。または、こちらをご覧ください。マークアップ拡張の問題という章を探してください。