webbuddu
@webbuddu
Начинающий.

Как добавить класс соседнему элементу?

Есть 3 блока , раскрывается в них текст если кликнуть.
$('.reeder').click(function(){
$(this).closest('.box').toggleClass('none');
 });

Этот код тоже должен остаться и исполнять то что делается сейчас. (открывает и закрывает блок)

Как сделать так чтобы когда блок раскрыт, а кликнув на соседний он закрылся ,
а тот на который кликнули раскрылся.

Т.е. Нужно сделать так чтобы при любом раскладе был открыт только один блок ( после клика).

Вот пример https://codepen.io/Maxim22/pen/EOdbMW

$('.reeder').click(function(){
   if ($(".piling__full_box .box").hasClass("none")) {
   $(".piling__full_box .box").addClass("none");
   }
   $(this).closest('.box').toggleClass('none');
 });
// Этот код работает, Но тогда не получается закрывать блок $(this)
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('.reeder').click(function() {
  const $box = $(this).closest('.box').toggleClass('none');
  $box.parent().find('.box').not($box).addClass('none');
});

или

const $boxes = $('.box').on('click', '.reeder', e => {
  $(e.delegateTarget).toggleClass('none');
  $boxes.not(e.delegateTarget).addClass('none');
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект