JQuery остановка переключения в классе - PullRequest
1 голос
/ 11 февраля 2011

В настоящее время у меня есть классы div для фильтров, которые нельзя изменить. Я хочу иметь .toggle, чтобы при нажатии на один раздел остальные скрывались до следующего класса .refinement_custom_category_section. В настоящее время он почти работает, он просто скрывает ВСЕ под разделом, когда я хочу скрыть этот раздел только при нажатии.

  <div class="refinement_custom_category_section">Find by Condition</div>
  <div class="refinement_filter"><a href="">New (52)</a></div>
  <div class="refinement_filter"><a href="">Used (7)</a></div>
  <div class="refinement_filter"><a href="">Overstock - New (2)</a></div>
  <div class="refinement_custom_category_section">Find by Section</div>
  <div class="refinement_filter"><a href="">1 Section (2)</a></div>
  <div class="refinement_filter"><a href="">2 Section (40)</a></div>
  <div class="refinement_filter"><a href="">3 Section (19)</a></div>
  <div class="refinement_custom_category_section">Find by Door Type</div>
  <div class="refinement_filter"><a href="">Solid Door (34)</a></div>
  <div class="refinement_filter"><a href="">Glass Door, Sliding (6)</a></div>
  <div class="refinement_filter"><a href="">Glass Door, Swing (21)</a></div>
  <div class="refinement_custom_category_section">Find by Exterior</div>
  <div class="refinement_filter"><a href="">Black (33)</a></div>
  <div class="refinement_filter"><a href="">Stainless Steel (28)</a></div>
  <div class="refinement_custom_category_section">Find by Height</div>
  <div class="refinement_filter"><a href="">34.5 inches (12)</a></div>
  <div class="refinement_filter"><a href="">35.625 inches (16)</a></div>
  <div class="refinement_filter"><a href="">35.875 inches (11)</a></div>
  <div class="refinement_filter"><a href="">37 inches (20)</a></div>
  <div class="refinement_filter"><a href="">38.75 inches (2)</a></div>
</div>
<script>
$(".refinement_custom_category_section").click(function () {
$(this).nextAll("div.refinement_filter").toggle("fast");
});
</script>

Ответы [ 2 ]

5 голосов
/ 11 февраля 2011

Вам нужно nextUntil():

$(this).nextUntil("div.refinement_custom_category_section").toggle("fast");

nextAll выберет всех братьев и сестер, соответствующих селектору.

0 голосов
/ 11 февраля 2011
$(".refinement_custom_category_section").click(function () {
  var $subcat = $(this).nextUntil("div.refinement_custom_category_section");
  $(this).siblings("div.refinement_filter").not($subcat).hide();
  $subcat.toggle();
});
...