Всплытие jquery

97
21 января 2021, 14:10

Не могу понять что не так. Вроде запретил всплытие события, но "не работает".

Под всплытием имею ввиду, что от потомка события передаются родителям и т.д. Так вот, мне нужно чтоб события выполнились только у потомка и на нем все закончилось.

В результате хочу получить клик по "header-mobile-menu". Клик по "mobile-layer" НЕ должен считаться как клик по "header-mobile-menu".

Привожу пример с песочницы - [jsfiddle][1]

<div class="header-mobile-menu">
  <div class="mobile-layer">123</div>
</div>
$('.header-mobile-menu').click(function (event) {
  event.stopPropagation();
  alert(123);
});

Спасибо!

Answer 1

События "всплывают" от детей к родителям. Вызов event.stopPropagation(); должен быть в обработчике события внутреннего элемента.

$('.mobile-layer').click(function(event) { 
  event.stopPropagation(); 
  console.log(123); 
}); 
$('.header-mobile-menu').click(function(event) { 
  console.log(456); 
});
.header-mobile-menu { 
  border: black solid 1px; 
  background: lightgreen; 
  padding: 30px; 
} 
 
.mobile-layer { 
  border: black solid 1px; 
  background: lightpink; 
  padding: 10px; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="header-mobile-menu"> 
  <div class="mobile-layer">123</div> 
</div>

READ ALSO
Передача значения из input в button React

Передача значения из input в button React

Есть поле, в котором прописан статический путь формирования файлаЯ сделал это поле редактируемым на случай, если пользователь захочет по своему...

85
Проверка отправки формы Wordpress/Divi

Проверка отправки формы Wordpress/Divi

Есть сайт на Wordpress (на конструкторе Divi), при отправке формы надо выводить попап "спасибо за обращение"У формы есть встроенный валидатор, к коду...

123
Обнуление переменной setInterval

Обнуление переменной setInterval

Может кто-то пожалуйста объяснить принцип работы setInterval при сохранении этого "интервала" в переменнуюПри первом старте интервала в переменную...

91
Использование данных из формы?

Использование данных из формы?

На сайте есть форма обратной связи

88