2015-03-17 2 views
0

Здесь Fiddle: http://jsfiddle.net/abhiklpm/ZEDR9/5/Как реализовать фильтр флажков Multi в JQuery?

Здесь я Реализован множественный флажок с фильтром, но фильтр становится перекрываться по нажатию второго флажка

EX: Если я нажимаю доставки всей доставка придет в таблице ниже Но в то же время, если я нажму 1GB Пересечение отгрузки и 1 ГБ должно появиться только с опциями доставки, которые могут быть превышены.

нравится, если я нажимаю Отгрузка & 1GB Только (продукт) Память 1 должна наступить. Помоги мне в этом

**Script** 

$("input:checkbox").click(function() { 
var showAll = true; 
$('tr').not('.first').hide(); 
$('input[type=checkbox]').each(function() { 
    if ($(this)[0].checked) { 
     showAll = false; 
     var status = $(this).attr('rel'); 
     var value = $(this).val();    
     $('td.' + status + '[rel="' + value + '"]').parent('tr').show(); 
    } 
}); 
if(showAll){ 
    $('tr').show(); 
} 
}); 
+2

http://jsfiddle.net/arunpjohny/y29Lp5p1/3 /? –

ответ

1

Try создать набор фильтров и петлю через фильтр и применять их как

var $checks = $("input:checkbox").click(function() { 
    var $trs = $('tr').not('.first'); 

    var filters = {}, flag = false; 
    $checks.filter(':checked').each(function() { 
     var rel = $(this).attr('rel'); 
     filters[rel] = filters[rel] || []; 
     filters[rel].push('.'+rel+'[rel="'+this.value+'"]'); 
     flag = true; 
    }) 
    if (flag) { 
     $trs.show(); 
     $.each(filters, function (rel, list) { 
      $trs.not(':has('+list.join()+')').hide(); 
     }); 
    } else { 
     $trs.show(); 
    } 
}); 

Демо: Fiddle

Смежные вопросы