Показать сообщение отдельно
  #11 (permalink)  
Старый 18.05.2021, 00:29
Интересующийся
Отправить личное сообщение для Angelinasen Посмотреть профиль Найти все сообщения от Angelinasen
 
Регистрация: 22.04.2021
Сообщений: 20

обработка клика
Добрый день! Есть трехуровневое меню. При клике на элемент с классом --clickable, дочернему элементу ul задается класс --active и соответсвенно открывается меню.

Как мне сделать чтобы при клике на родительский элемент(li) элемента с классом --active, у этого элемента пропадал класс --active и меню соотвественно закрывалось? или при нажатии на пукт 2 закрывались оба подменю

Есть код, он открывает меню, но для закрытия я неверно написала((

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <ul class="menu-first">
    <li class="menu-first__link"><a href="">Пункт 1</a></li>
    <li class="menu-first__link --clickable"><a href="">Пункт 2</a>
      <ul class="menu-second">
        <li class="menu-second__link"><a href="">Ссылка 1</a></li>
        <li class="menu-second__link"><a href="">Ссылка 2</a></li>
        <li class="menu-second__link --clickable"><a href="">Ссылка 3</a>
          <ul class="menu-third">
            <li class="menu-third__link"><a href="">Товар 1</a></li>
            <li class="menu-third__link"><a href="">Товар 2</a></li>
            <li class="menu-third__link"><a href="">Товар 3</a></li>
            <li class="menu-third__link"><a href="">Товар 4</a></li>
          </ul>
        </li>
        <li class="menu-second__link"><a href="">Ссылка 4</a></li>
      </ul>
    </li>
    <li class="menu-first__link"><a href="">Пункт 3</a></li>
    <li class="menu-first__link"><a href="">Пункт 4</a></li>
  </ul>
</body>
</html>


$(function () {
  $('.--clickable').click(function (event) {
    event.preventDefault();
    $(this).children('ul').addClass('--active');
    });
  });

$(function () {
  $('.--active').closest('li').click(function (event) {
      event.preventDefault();
      $(this).removeClass('--active');
    });
  });

Последний раз редактировалось Angelinasen, 18.05.2021 в 00:41.
Ответить с цитированием