2016-06-28 6 views
0

私はselected.jsを複数選択のドロップダウンに使用していますが、長いリストのオプションがあるときは、検索フィルターは驚くほど遅いです。Delay Chosen.js検索フィルター

入力された各文字の後にフィルタが適用されているように見えるので、最小文字数が入力されるまで、またはフィルタが無効になってからフィルタを無効にできれば、最後のキー入力。

私が選ばれたので、同様にドロップダウン初期化しています:

$(".chzn-dynaselect").chosen({ width: '250px', search_contains: true }); 

そして、私はそうのようなフィルタを遅らせるしようとしています:

var timer = 0; 
$('.search-field input').on('input', function() { 
    if (timer) 
    { 
     clearTimeout(timer); 
    } 
    timer = setTimeout(function() { 
     $(".chzn-dynaselect").chosen().trigger("chosen:activate") 
    }, 400); 
}); 

このコードを正しく入力にトリガーが、doesnのフィルタを遅らせる。すべてのキーアップ後も引き続きフィルタがトリガされます。

検索ボックスを維持する方法はありますか?フィルタイベントを一時的にオフにする方法はありますか?

答えて

0

setTimeout第一引数には、(setTimeoutを用ドキュメントを参照、または文字列)

timer = setTimeout(function() { 
    $(".chzn-dynaselect").chosen().trigger("chosen:activate") 
}, 400); 
+0

おかげで、マウリシオ機能する必要があります!それを逃した。しかし、それでも、すべての文字が入力された後でChosen検索がまだフィルタリングされているように見えます。検索ボックスを維持する方法はありますか?最小限の文字数またはユーザーが入力を停止するまで、フィルターイベントを遅らせますか?再度、感謝します! – TonyD

関連する問題