4

こんにちは私はこのjsコードを使用して複数のドロップダウンで同位体フィルタリングを正常にセットアップしました-

jQuery(function() {
    var $container = $('#isocontent'),
        $select = $('div#filterGroup select');
    filters = {};

    $container.isotope({
        itemSelector: '.box'
    });
    $select.change(function() {
        var $this = $(this);

        var $optionSet = $this;
        var group = $optionSet.attr('data-filter-group');
        filters[group] = $this.find('option:selected').attr('data-filter-value');

        var isoFilters = [];
        for (var prop in filters) {
            isoFilters.push(filters[prop])
        }
        var selector = isoFilters.join('');

        $container.isotope({
            filter: selector
        });

        return false;
    });

}); 

そして同じページで、quicksearch.jsプラグインとこ​​のコードを使用したアイソトープを使用してライブ検索入力フィールドを設定することができました-

<script type="text/javascript">
            $(function () {
                $('input#id_search').quicksearch('#isocontent.box');
});
        </script>
<script type="text/javascript">
$(function() {

   var $container = $('#isocontent');


   $container.isotope({
        itemSelector: '.box'
    });


    $('input#filter').quicksearch('#isocontent .box', {
        'show': function() {
            $(this).addClass('quicksearch-match');
        },
        'hide': function() {
            $(this).removeClass('quicksearch-match');
        }
    }).keyup(function(){
        setTimeout( function() {
            $container.isotope({ filter: '.quicksearch-match' }).isotope(); 
        }, 100 );
    });

});
 </script>

ライブ検索とドロップダウンは、一緒に機能しないことを除いて機能します。検索を行うと、コンテンツが適切に検出され、無関係なコンテンツが非表示になりますが、ドロップダウンでフィルタリングすると、ライブ検索によって行われたフィルタリングがリセットまたは無視されるように見えます。2つの関数を連携させ、スクリプトを1つのスクリプトに結合する方法はありますか?

どんな助けでもありがたいです、ありがとう。

4

1 に答える 1