I’m trying to hide a div if the user clicks anywhere BUT the popup OR its children. This is the code I have so far:
$("body").click(function(){
var $target = $(event.target);
if(!$target.is(".popup") || !$target.is(".popup").children()){
$("body").find(".popup").fadeOut().removeClass('active');
}
});
This works for the .popup div, but if any of its children are clicked, it hides it anyway.
You really could simplify this a bit I think:
Clicking on the popup, or any of its children will cause propagation to stop before it reaches the body.
Demo of stopping event-propagation: http://jsbin.com/ofeso3/edit