6

这是关于过滤 jQuery 同位素项目选择器的输入复选框。

请参阅此处的演示,加载页面时会检查复选框。但是,当用户未选中所有内容时,我偶然发现了这个问题,它只会显示所有.items内容而不是空容器。

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

非常感谢提前,干杯

4

2 回答 2

5

同位素库按预期工作

filter - 设置过滤器,显示匹配选择器的项目元素,并隐藏不匹配的元素。

值 '*' 或 ''(空字符串):显示所有项目元素

如果您不想要这种行为,而是希望在选择每个过滤器时不显示任何元素,您应该将过滤器字符串更改为不存在的内容,例如

if(filters.length == 0){
    filters = 'purplemonkyeydishwasher';
}
else{
    filters = filters.join(', ');
}
$container.isotope({ filter: filters });

这将具有您想要的行为。我更新了小提琴。它现在选择所有过滤器时隐藏所有元素。

于 2013-01-14T03:07:25.213 回答
1

你可以简单地这样做:

$container.isotope({ filter: ( filters == null || filters.length == 0 ) ? 'default' : filters });`

哪里default总是不用。查看演示http://jsfiddle.net/G6LRL/

于 2013-01-18T02:30:43.123 回答