Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавить класс первому div который возле родителя (https://javascript.ru/forum/dom-window/84442-dobavit-klass-pervomu-div-kotoryjj-vozle-roditelya.html)

nikoshot 09.09.2022 00:14

Добавить класс первому div который возле родителя
 
Есть вот такая верстка
<li class="header-catalog__item_sub">
      <span class="header-catalog__arrow"></span>
</li>
<div class="header-catalog__sub"></div>

<li class="header-catalog__item_sub">
      <span class="header-catalog__arrow"></span>
</li>
<div class="header-catalog__sub"></div>

Мне нужно что бы по клику "header-catalog__arrow" добавить класс "active" для блока котрый идет сразу после li т.е "header-catalog__sub"

что бы было примерно так
<li class="header-catalog__item_sub">
      <span class="header-catalog__arrow">1 тут нажал</span>
</li>
<div class="header-catalog__sub">1 этому блоку добавил класс active</div>

<li class="header-catalog__item_sub">
      <span class="header-catalog__arrow">2 тут нажал</span>
</li>
<div class="header-catalog__sub">2 этому блоку добавил класс active</div>

nikoshot 09.09.2022 00:24

Пока писал.. пришла мысль и все получилось..
Вот так
$(this).parent().next().toggleClass('active')

borzik2h 09.09.2022 01:13

Лучше, наверно, делегирование сделать...

рони 09.09.2022 07:23

nikoshot,
div между li :( :( :(

voraa 09.09.2022 07:26

Если есть li, то значит родитель - ul или ol.
А в ul или ol дочерними могут быть только li.
Никаких div там быть не может.

nikoshot 09.09.2022 23:00

Цитата:

Сообщение от рони (Сообщение 547880)
nikoshot,
div между li :( :( :(

Точно.. спасибо за ошибку.. переделаю на li

nikoshot 09.09.2022 23:45

Нужен еще один совет..
Так как я нажимаю первый раз по списку li то внутри его есть ссылка и она срабатывает..
Как мне сделать что бы при первом клике на ссылку она не срабатывала, а открывался блок (это уже сделано) а когда нажимаю второй раз то ссылка уже срабатывает.. НО тут есть момент...
если сначала нажать на первый li>a то ссылка не должна сработать... но должна сработать при втором клике.. а если мы сделали только один клики и потом кликнули на второй пункт меню li>a то уже на втором пункте первый клик не работает переход по ссылке и работает на второй.. И вот если ввернутся снова на первый пункт меню то там должно работать снова первый клик = не работет ссылка, второй клик работает.. Надеюсь объяснил...

рони 10.09.2022 01:09

Цитата:

Сообщение от nikoshot
Надеюсь объяснил...

подожду переводчика и макет.
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


Часовой пояс GMT +3, время: 05:56.