Проверка флажков через несколько массивов? - PullRequest
0 голосов
/ 07 января 2012

У меня небольшая проблема на сайте, который я пытаюсь создать.На одной стороне сайта есть «фильтр», который позволяет пользователям устанавливать флажки в списке, которые влияют на результаты их поиска.Я новичок в jQuery, но мне удалось собрать достаточно кода, чтобы сделать эту работу ... в основном

Вот код, который у меня пока есть:

/// Makes checkboxes in the filter add and remove the proper class based on whether they're checked or not
$('.filterlist input:checkbox').click(function checkboxes(){
  $thislist = $(this).closest('.filterlist li > ul');
  $checkboxes = $thislist.closest('li > input:checkbox').serializeArray();
  if($checkboxes.length < 1) {
     $(this).closest('ul.filterlist > li').removeClass('itemselected');
  }
  else if($checkboxes.length > 0) {
     $(this).closest('ul.filterlist > li').addClass('itemselected');
  }
});

В моем css 'itemselected' есть класс, который я пытаюсь добавить.Проблема в том, что у меня есть более одного списка флажков в «.filterlist».Когда я проверяю флажки в первом списке, он правильно добавляет класс, и если я удаляю все из этого списка, он удаляет класс должным образом - если только во втором списке нет отмеченных флажков.

Это потому, что я использую только один массив, но я не могу понять, как заставить его создать отдельный массив для каждого из списков, так что даже если некоторые из них будут отмечены в первом списке, он будетпо-прежнему удаляйте класс из li во втором списке, если ни один не отмечен там, или наоборот.

Извините, это такой длинный вопрос, я пытался быть конкретным.

Спасибо, впередвремени на любые ответы!=]

1 Ответ

0 голосов
/ 07 января 2012

как то так ??

$(document).ready(function(){ 
 $('ul.filterlist input:checkbox').click(function () {
  var ul = $(this).parent().parent();
  if ( ul.find("input:checked").length == 0 ) {
   ul.parent().removeClass('itemselected');
  } else {
   ul.parent().addClass('itemselected');
  }
 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...