2013-01-10 10 views
6

jQuery同位体itemselectorをフィルタリングするための入力チェックボックスです。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 }); 
}); 

多くのおかげで、歓声

答えて

5

同位体ライブラリがworking as intendedです。

filter - 表示項目の要素が セレクタに一致するフィルタを設定し、一致しない要素を非表示にします。

値「*」または「」(空文字列):を使用すると、この動作をしたい、とすべてのフィルタを選択したときに代わりに任意の要素を表示しないようにしたくない場合は、すべての項目要素

を表示します、フィルタ文字列を存在しないものに変更する必要があります。

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

これで、必要な動作になります。 I updated the fiddle.となり、すべてのフィルタが選択されたときにすべての要素が非表示になります。

+0

@Danackに感謝します。 –

1

あなたは、単にこれを行うことができます:defaultは常に未使用である

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

。デモを参照してください。http://jsfiddle.net/G6LRL/

+0

感謝します! (btw:文字列の最後に 'があります) –

関連する問題