-1

入力フィールドに入力されたデータに基づいてリストをフィルタリングするjqueryクイック検索プラグイン(https://github.com/riklomas/quicksearch )を使用しています。

結果が返されない場合は、その旨のメッセージを表示したいと思います。

クイック検索プラグインは、表示されないすべてのリスト要素にdisplay:noneを追加します。

したがって、私はこれを試しました:

        // load jquery.quicksearch
        $('#search').parent().css('display','block').end().quicksearch('#ul'+id+' li');

        // show / hide message
        $("input#search").keypress(function() {
                li = $('.category li');                 
                if (li.css('display') == 'none') {
                    $('body').append('<div id="noContent">no content</div>');
                } else { 
                    $('#noContent').remove();
                }
        });

その結果、非常に厄介な/バグのあるソリューションになります。すべてのliアイテムに表示がある場合でも、メッセージが追加されない場合があります:none。また、リストアイテムが表示されている場合でも、コンテンツなしのメッセージは削除されません。

何か案は?

4

1 に答える 1

1

ドキュメントを読んでください:あなたはあなたがしていることをする必要はありません。

noResultsオプションを使用するだけです。

彼らの例:

$('input#search').quicksearch('table tbody tr', {
    'delay': 100,
    'selector': 'th',
    'stripeRows': ['odd', 'even'],
    'loader': 'span.loading',
    'noResults': 'tr#noresults',
    .......

あなたが望むように見えます'noResults': '#noContent'

于 2013-01-29T18:28:09.537 に答える