Поскольку вы используете on
для элемента body
, а не для img.theater
, событие будет пузыриться до элемента body
, и именно так оно и будет работать.
Вход события: .theater-wrapper
elements click
событие будет запущено, поэтому вы его видите.
Если вы не создаете никаких динамических элементов, то прикрепите обработчик события click непосредственно к элементу img.theater
.
$("img.theater").click(function(event){
event.stopPropagation();
$('.theater-wrapper').show();
});
В качестве альтернативы вы можете проверить цель события click
внутри обработчика .theater-wrapper
elements click
и ничего не делать.
$(".theater-wrapper").click(function(event){
if ($(event.target).is('img.theater')){
event.stopPropagation();
return;
}
$('.theater-wrapper').hide();
});