У меня есть div, к которому я прикрепил onclick
событие. в этом разделе есть тег со ссылкой. Когда я нажимаю на ссылку, onclick
событие из div также запускается. Как я могу отключить это, чтобы, если ссылка нажата на div onclick
не срабатывает?
сценарий:
$(document).ready(function(){
$(".header").bind("click", function(){
$(this).children(".children").toggle();
});
})
HTML-код:
<div class="header">
<a href="link.html">some link</a>
<ul class="children">
<li>some list</li>
</ul>
</div>
$(".header a")
с$(".header *")
и получил какой - либо ребенок выбран (Div, формы, ввод и т.д.).rel
сконфигурированному лайтбоксу функционироватьИли вместо того, чтобы иметь дополнительный обработчик событий для предотвращения другого обработчика, вы можете использовать аргумент Event Object, передаваемый вашему обработчику события click, чтобы определить, был ли выбран дочерний элемент.
target
будетcurrentTarget
выбранным элементом и будет .header div:источник
currentTarget
. Обходной путь должен заменить этоthis
, как предложено в другом ответе .Лучше всего использовать on () с цепочкой вроде,
источник
Ответы здесь восприняли вопрос ОП слишком буквально. Как эти ответы можно расширить в сценарий, где есть МНОГИЕ дочерние элементы, а не просто один
<a>
тег? Вот один из способов.Допустим, у вас есть фотогалерея с затемненным фоном и фотографиями по центру в браузере. Когда вы щелкаете черный фон (но не что-то внутри него), вы хотите, чтобы наложение закрылось.
Вот несколько возможных HTML:
И вот как JavaScript будет работать:
Это остановит события щелчка по элементам внутри
.contents
каждого исследования,.gallery
поэтому галерея будет закрываться только тогда, когда вы щелкнете по заштрихованной области черного фона, но не при щелчке в области содержимого. Это может быть применено ко многим различным сценариям.источник
Я наткнулся на этот вопрос, ища другой ответ.
Я хотел, чтобы все дети не вызывали родителя.
JavaScript:
JQuery:
источник
Или это:
источник
return false
ссылку, она должна быть кликабельной.Самое простое решение - добавить этот CSS для детей:
источник
Более короткий способ сделать это:
источник