同位素搜索过滤器几乎已经找到了

时间:2013-09-13 15:23:59

标签: javascript jquery jquery-isotope

最后一点需要一些帮助...

我有一个小提琴 here ......

我按按钮点击过滤搜索,按关键字搜索。他们独立工作,但我似乎无法让他们一起工作。

我觉得这个功能就在这里,但我有点失落......

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' });
    }

}

编辑:我试图仅通过名字/姓氏进行搜索。

1 个答案:

答案 0 :(得分:0)

基本上看起来你的"*"选择器会导致几个All按钮出现问题。如果你只是让它们空白“”似乎有效。

我把这个警告放在你的代码中,并注意到选择器在几次选择后有点奇怪:

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

你选择**.ar

等选择器

JSFiddle:http://jsfiddle.net/TrueBlueAussie/2pasq/14/

没有一整套项目值来测试所有组合,但是如果你删除两个“*”过滤器似乎有效。