javascript - 将类添加到同位素中的过滤项目和隐藏项目。按钮不是复选框

标签 javascript jquery filtering jquery-isotope

我知道这个问题已经得到解答,并且here is a fiddle这正是我想要做的,但是,在示例中,他们使用单选按钮,而我使用一组按钮(本质上只是 div,一旦单击,它们就会获得 .active 类)。

我尝试调整代码,以便“过滤器”提供与示例中相同的输出,据我所知,它确实如此(内部包含过滤器类名称的数组),所以我不知道为什么它不起作用。

这是我编辑的代码...

    $(document).ready(function(){

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

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

    $('.nav a').click(function(){

        $('.nav a').removeClass('active');
        $(this).addClass('active');

      var selector = $(this).attr('data-filter');

      $items = $('.box'); // to reference methods on all .item divs later
        // alert($items.length);

        // get checked checkboxes values
        var filters = [];

          filters.push(selector);
          console.log(filters);

         $container.isotope({
                filter: filters
            }, function($changedItems, instance) {
                instance.$allAtoms.filter('.isotope-hidden').removeClass('is-filtered');
                alert((instance.$allAtoms.filter('.isotope-hidden')).length); // here it is
                instance.$filteredAtoms.addClass('is-filtered');
            });

      return false;

    });

    });

任何关于为什么我的版本不起作用的想法将不胜感激。

这是我的 NOT WORKING EXAMPLE 的链接

最佳答案

你的变量filters是一个数组。我认为它应该是一个可以工作的字符串。

所以就这样做:

var filters = [];
filters.push(selector);
filters = filters.join(', ');

事实上,如果您一次只使用一个过滤器(如图所示),则可以直接使用变量selector,因为它已经包含您的过滤器类名称。

希望对你有帮助!

关于javascript - 将类添加到同位素中的过滤项目和隐藏项目。按钮不是复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968605/

相关文章:

c# - 将过滤器作为对象从 View 传递到 Controller

javascript - 如何在 JavaScript 中迭代此 List 类的实例

javascript - 我如何知道 javascript 所有异步操作何时结束?

javascript - 如何点击页面中间的按钮

javascript - 将值更改为选中的单选按钮的值

php - PHP JSON 数据无效

jquery - 如何用两栏布局 A4 页面打印试卷?

JavaScript 网址变量

python - 使用 python opencv 在网络摄像头上切换图像过滤器

Excel VBA 循环通过过滤的数据透视项