Задать вопрос
@mikilikala
На фронте

Не закрывается div, если по нему кликнуть повторно?


https://codepen.io/roderen/pen/JjLGxEg?editors=1111

Если нажать по select-main, то открывается блок. Но если нажать повторно на один и тот же select-main, то блок обратно не закрывается. Как решить?
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Средний 9 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
В обработчике клика сначала всем удаляется класс active,
а только затем проверяется, по кому кликнули, и если убранного класса нет – он добавляется.

Так при клике мгновенно удаляется-добавляется назад этот класс.

Можно было бы удалять в начале не всем подряд, а всем, кроме себя.
А для самого блока добавить вариант, что класс уже есть – тогда его убрать.

Но вообще это некруто – полагаться на наличие/отсутствие классов. Лучше держать где-то данные — какой именно блок открыт. И в зависимости от этого отрисовывать интерфейс.

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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