jQuery同位素复选框过滤器,如果全部取消选中则不显示任何项目

时间:2013-01-10 11:01:43

标签: jquery checkbox jquery-isotope

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

请参阅演示here,在页面加载时选中复选框。但是,当用户取消选中所有问题时,我偶然发现问题,它只显示所有.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 });
});

非常感谢,欢呼声

2 个答案:

答案 0 :(得分:5)

同位素库是working as intended

  

filter - 使用与项目匹配的show item元素设置过滤器   选择器,并隐藏不匹配的元素。

     

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

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

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

这将具有您想要的行为。我updated the fiddle.,现在它会在选择所有过滤器时隐藏所有元素。

答案 1 :(得分:1)

你可以这样做:

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

default始终未使用。请参阅演示http://jsfiddle.net/G6LRL/