Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Отключить onclick для дочернего элемента в html

Ден Але Ученик (53), на голосовании 2 года назад
Всем привет!

Например имеется вот такой код:
<div onclick="document.location='url'">
<div>1</div>
<div>2</div>
<div>3</div>
</div>

При нажатии на блок (в любое место) срабатывает onclick, как его отключить для дочернего блока (<div>2</div>)?
Голосование за лучший ответ
партнер [www.a77r.ru] Мудрец (10088) 2 года назад
копай всплытие-погружение
Petr Muhurov Мыслитель (5922) 2 года назад
добавить какой-нибудь идентификатор для этого блока, а в функции-обработчике проверить event.target: если он ссылается на этот блок, то отменить выполнение этого обработчика
Ден АлеУченик (53) 2 года назад
а как это реализовать?
Может пример имеется?
Petr MuhurovМыслитель (5922) 2 года назад
<div id="2">2</div>

function onClick(event) {
if (event.target.id === "2") return;

//то, что должно быть в функции
}
Сергей Жаков Мудрец (16210) 2 года назад
здесь написано как отлючать

Всплытие и перехват
https://learn.javascript.ru/event-bubbling

событие Events bubbling и events capturing
https://habr.com/ru/post/126471/

stopPropagation()
Саня Семенов Оракул (60597) 2 года назад
В обработчике есть первый параметр event у него есть методы которыми можно прекратить распространение события на дочерние элементы. Ну или просто вернуть false (которое должно вернуться далее ) так как return false часто далее не возвращают то точно сработает
event.stopPropagation()
event.preventDefault()// чтобы не переходило по ссылке и не отправляло формы
Похожие вопросы