slideToggle для нескольких элементов, если один из них открыт, закрыть один перед открытием другого

0

У меня есть немного немного JS, я сделал, простые вещи, которые я знаю, но задаюсь вопросом, каким будет лучший способ, если бы я расширил один и щелкнул на другом, чтобы открыть все открытые, которые закрылись бы до того, как откроется другой.

JS

/* Expand course details */
$('.expandCourse').on('click',function() {
  var courseID = $(this).attr('ID');
  console.log(courseID);
  $("."+courseID).slideToggle();
  return false;
});

Пример HTML:

<a href="#" id="link_1" class"expandCourse">test link 1</a>
<div class="link_1" style="display:none;>content here</div>

<a href="#" id="link_2" class"expandCourse">test link 2</a>
<div class="link_2" style="display:none;>content here</div>

<a href="#" id="link_3" class"expandCourse">test link 3</a>
<div class="link_3" style="display:none;>content here</div>

Заранее спасибо!

Теги:

1 ответ

0
Лучший ответ

Вы можете так использовать

$('.expandCourse').on('click',function() {
   $("[class^=link]").not($(this).next()).slideUp();
   $(this).next().slideToggle();
});

демонстрация

В каждом клике он скрывает все div с именем class начинается со link кроме div, связанного с текущим привязкой.

редактировать

$('.expandCourse').on('click',function() {
   $("[class^=link]").not($("."+this.id)).slideUp();
  $("."+this.id).slideToggle();
});

Обновленная скрипка

  • 0
    Я не могу использовать .next, так как источник немного больше, я просто сократил его для этого примера. Как бы я сделал на основе JS я сделал - добавление к этому. Спасибо за вашу помощь.
  • 0
    @JamesBrandon см редактировать
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню