Ответы здесь восприняли вопрос ОП слишком буквально. Как эти ответы можно расширить в сценарий, где есть МНОГИЕ дочерние элементы, а не просто один<a> тег? Вот один из способов.
Допустим, у вас есть фотогалерея с затемненным фоном и фотографиями по центру в браузере. Когда вы щелкаете черный фон (но не что-то внутри него), вы хотите, чтобы наложение закрылось.
Вот несколько возможных HTML:
<div class="gallery" style="background: black">
<div class="contents"> <!-- Let's say this div is 50% wide and centered -->
<h1>Awesome Photos</h1>
<img src="img1.jpg"><br>
<img src="img2.jpg"><br>
<img src="img3.jpg"><br>
<img src="img4.jpg"><br>
<img src="img5.jpg">
</div>
</div>
И вот как JavaScript будет работать:
$('.gallery').click(
function()
{
$(this).hide();
}
);
$('.gallery > .contents').click(
function(e) {
e.stopPropagation();
}
);
Это остановит события щелчка по элементам внутри .contentsкаждого исследования, .galleryпоэтому галерея будет закрываться только тогда, когда вы щелкнете по заштрихованной области черного фона, но не при щелчке в области содержимого. Это может быть применено ко многим различным сценариям.
$(".header a")с$(".header *")и получил какой - либо ребенок выбран (Div, формы, ввод и т.д.).