1

最後の部分で助けが必要です...

ここにフィドルがあります...

ボタンのクリックによるフィルター検索と、キーワードによる検索があります。それらは独立して動作しますが、連携させることができないようです。

関数はここのどこかにあると思いますが、少し迷っています...

function isotopeSearch(kwd)
{
    // reset results arrays
    var matches = [];
    var misses = [];

    $('.item').removeClass('match miss'); // get rid of any existing classes
    $('#noMatches').hide(); // ensure this is always hidden when we start a new query

    if ( (kwd != '') && (kwd.length >= 2) ) { // min 2 chars to execute query:

        // loop through brands array        
        _.each(items, function(item){
            if ( item.first.indexOf(kwd) !== -1 ) { // keyword matches element
                matches.push( $('#'+item.id)[0] );
            } else {
                misses.push( $('#'+item.id)[0] );
            }
        });

        // add appropriate classes and call isotope.filter
        $(matches).addClass('match');
        $(misses).addClass('miss');
        $container.isotope({ filter: $(matches) }); // isotope.filter will take a jQuery object instead of a class first as an argument - sweet!

        if (matches.length == 0) {
            $('#noMatches').show(); // deal with empty results set
        }

    } else {
        // show all if keyword less than 2 chars
        $container.isotope({ filter: '.item' });
    }

}

編集:姓/名のみで検索できるようにしようとしています。

4

1 に答える 1

0

基本的に、セレクターがいくつかのボタン"*"で問題を引き起こしているようです。All単に空白 "" にするとうまくいくようです。

私はあなたのコードにこのアラートを入れて、いくつかの選択の後、セレクターが少し奇妙になったことに気付きました:

    var selector = isoFilters.join('');
    alert(selector);

あなたは次のようなセレクターで終わりました**.ar

JSFiddle はこちら: http://jsfiddle.net/TrueBlueAussie/2pasq/14/

すべての組み合わせをテストする項目値の完全なセットはありませんが、2 つの "*" フィルターを削除すると機能するようです。

于 2013-09-17T17:45:10.407 に答える