@drtvader
Вечный студент

Как вывести определённые блоки при выборе checkbox?

Привет! Как можно вывести определённые блоки при выборе определённого checkbox?
Нужно что бы при выборе определенной рубрики, остальные скрывались.
Например при выборе рубрики "Общие события" показывались только события имеющие data-rubric="1"? а остальные скрывались. Или например при выборе нескольких не скрывались только те события, которые соответствовали бы выбранным.

https://jsfiddle.net/drtvader/63zqhu1f/1/
  • Вопрос задан
  • 850 просмотров
Решения вопроса 3
Один из вариантов:
сделать псевдокласс отвечающий за видимость элементов
при измнении чекбоксов проходить по списку блоков и добавлять/убирать класс в зависимости от текущих фильтров.
Ответ написан
Комментировать
@Sashjkeee
f-e
Ответ написан
Комментировать
@drtvader Автор вопроса
Вечный студент
Вот такое работает
var rubric = $('[data-rubric]');
var rubric_items = $('.filter-rubric__item :checkbox');
$('body').on('change', '.filter-rubric__item :checkbox', function() {
    var name = this.id;
    if($('.filter-rubric__item :checkbox:checked').length == 1){
       if($(this).prop('checked')) {
           rubric.hide();
           $('[data-rubric='+ name +']').show();
       } else {
           $('[data-rubric='+ name +']').hide();
       }
    } else if($('.filter-rubric__item :checkbox:checked').length > 1) {
      if($(this).prop('checked')) {
        $('[data-rubric='+ name +']').show();
      } else {
        $('[data-rubric='+ name +']').hide();
      }
    } else {
      rubric.show();
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы