1

OK、ここに私の問題があります:

  • たくさんのアイテムを含む jQueryMobile ベースのリストビューを実装しようとしています (「たくさん」と言うときは、何万という意味です)
  • 要素は最初からリスト内に表示される必要はありませんが、代わりにユーザーが入力した内容に応じて表示されます
  • たとえば、ユーザーが少なくとも 2 文字を入力するのを待ってから、適切な項目だけを表示 (リストに追加) します。
  • 等々...

それについてどう思いますか?この問題に対する既存の回避策はありますか? (どこでも検索しましたが、機能するものが見つかりません...)

4

2 に答える 2

1

リストビューにフィルターを使用している場合は、ソース コードを確認する必要があります。

else {
//filtervalue is empty => show all
listItems.toggleClass( "ui-screen-hidden", !!listview.options.filterReveal );
}

ここでは、検索領域が空白の場合、すべての要素が表示されます。これを変更して、すべてを表示するのではなく、すべてを非表示にすることができます。そうすれば、リストビューをいっぱいにすることができ、デフォルトの動作で必要な結果が表示されます。これは最初のタイプから機能し始めますが。これも変更でき、検索テキストが lengthOfText >= 2 の場合は、呼び出されるたびに (onKeyUp イベント) 検索テキストの長さを確認できます。

EDIT リストが読み込まれるときに、それらを自分で非表示にする必要があります。追加するだけ

"ui-screen-hidden"

あなたのli要素に。

//最終的に何をするかに関係なく、パフォーマンスを確認できるようにリンクを提供してください。私は本当に興味があります。

于 2013-06-09T21:24:12.067 に答える
1

使用できます

data-filter-reveal="true"

ここにデモhttp://jsfiddle.net/yeyene/SjbMd/2/があります

HTML

<ul data-role="listview" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Search fruits..." data-inset="true">
    <li><a href="#">Apple</a></li>
    <li><a href="#">Banana</a></li>
    <li><a href="#">Cherry</a></li>
    <li><a href="#">Cranberry</a></li>
    <li><a href="#">Grape</a></li>
    <li><a href="#">Orange</a></li>
</ul>
于 2013-06-10T02:34:47.820 に答える