2013-01-10 24 views
6

Đây là hộp kiểm đầu vào để lọc bộ lọc danh mục đồng vị jQuery.Bộ lọc hộp kiểm đồng vị jQuery, nếu tất cả bỏ chọn hiển thị không có mục

Tham khảo bản demo here, hộp kiểm được chọn khi tải trang. Tuy nhiên tôi vấp ngã khi vấn đề khi tất cả được bỏ chọn bởi người sử dụng, nó sẽ chỉ hiển thị tất cả .items thay vì một container rỗng.

$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 }); 
}); 

Nhiều cảm ơn trước, cheers

Trả lời

5

Thư viện đồng vị là working as intended.

bộ lọc - Đặt bộ lọc có phần tử chương trình khớp với bộ chọn và ẩn các phần tử không khớp.

Values ​​'*' hoặc '' (một chuỗi rỗng): Hiển thị tất cả các yếu tố mục

Nếu bạn không muốn hành vi này, và thay vào đó muốn không hiển thị bất kỳ yếu tố khi mỗi bộ lọc được chọn , bạn nên thay đổi chuỗi bộ lọc thành chuỗi không tồn tại, ví dụ:

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

Điều này sẽ có hành vi mà bạn muốn. Tôi updated the fiddle. và bây giờ nó ẩn tất cả các yếu tố khi tất cả các bộ lọc được chọn.

+0

cảm ơn @Danack, về giải pháp và giải thích làm việc. –

1

Bạn chỉ có thể làm điều này:

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

đâu default luôn luôn là không sử dụng. Xem bản demo http://jsfiddle.net/G6LRL/

+0

CẢM ƠN BẠN! (btw: có một 'ở cuối chuỗi của bạn) –

Các vấn đề liên quan