在Isotope.js中加入多个复选框过滤器

时间:2016-03-31 17:11:13

标签: javascript jquery html jquery-isotope

我有一个过滤搜索工作,有2个类别过滤器:

  1. 分类

  2. 业务类型

  3. 过滤器按钮是使用复选框hack构建的,因此我可以一次选择多个。我的问题是,如果我从顶部(类别)部分选择2,它将过滤。即:登陆页面/博客 但如果我从顶部选择1,从底部选择1(即:Blogs / B2B)

    它将提取所有B2B选项,而不仅仅是博客。我相信我的问题正在我加入Isotope.JS中的过滤器。

    这是我的 fiddle ,其中有一个我的工作示例

    我的JS功能是:

    $(function(){
    
      var $container = $('.examples-container').isotope({
        itemSelector: '.example'
      });
    
      var $checkboxes = $('.filter-buttons label input');
      $checkboxes.change(function(){
        var filters = [];
        // get checked checkboxes values
        $checkboxes.filter(':checked').each(function(){
          filters.push( this.value );
        });
        // ['.red', '.blue'] -> '.red, .blue'
        var joinFilters = filters.join(', ');
        $container.isotope({ filter: joinFilters });
      });
    
    
    });
    

1 个答案:

答案 0 :(得分:2)

过滤器类似于jQuery或CSS语法。 .blog, .b2b表示"具有类博客或b2b"的项目。您正在寻找.blog.b2b

因此,在您的代码中var joinFilters = filters.join('');代替var joinFilters = filters.join(', ');