@Dillett
Начинающий web разработчик

Кто подскажет как правильно реализовать .on('click')?

Господа, возникла проблема. Надо сделать несколько открывающихся/скрывающихся блоков. Делаю через
$('body').on('click','.description', function() {
          $(this).next('.block').slideToggle(400).toggleClass('hidden-block');
         
        });

Для скрытия и
$('body').on('click','.button-ex', function() {
          $(this).next('.hidden-block').slideToggle(400).toggleClass('block');
         
        });

Соответственно для открытия блоков.

И все бы хорошо, но получается так что у меня в блоке с .description лежит еще один блок в котором так же ссылка на открытие блока.
<div class="description">
						<a class="act" href="#" id="hide-first-block">свернуть</a>
						<span class="cur">Текущие <strong>события</strong></span>
						<div id="express" class="button-ex">
							<a href="" id="hide-first-block" class="prevent"><strong>экспрессы</strong></a>
					</div>

Получается, что когда я скрываю/открываю второй блок, обработчик так же срабатывает и на первый.
На ум приходит, только вытащить второй блок из первого и с помощью absolute вставить его на свое место, но мне кажется это жуткие костыли будут. Поэтому хочу услышать мнение товарищей, которые смыслят в этом лучше меня )
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
Griboks
@Griboks
Насколько я помню, об этом написано в документации к on. Что-то вроде event.stopPropagation()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы