Задать вопрос
archakov06
@archakov06
Frontend-разработчик (ReactJS)

Как запретить вызов функции главного элемента?

Имеется к примеру элемент:
<div class="hello" onclick="func();">
<span>Hello World!</span>
<span onclick="world();">CLICK!</span>
</div>


Я кликаю на CLICK! и вызывается функция моя и hello();. Как запретить вызов функции hello(); если я кликнул по CLICK!?
  • Вопрос задан
  • 394 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 2
Это называется event bubling.
Почитать об этом можно тут: хабр. Статья старая, но ничего с тех пор не особо не изменилось.
Если кратко:
клик на элементе по умолчанию передаётся всем его родителям в DOM дереве( отсюда и свойство bubling т.е. как пузырёк поднимается вверх по DOM дереву)
Чтобы этого не происходило - нужно в обработчике вызватьevent.stopPropagation()
Ответ написан
Комментировать
abyrkov
@abyrkov
JavaScripter
Event.stopPropagation
function hello(a){
a.stopPropagation();
//other code
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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