Estoy tratando de hacerlo para que mi menú desplegable se muestre al hacer clic en un botón y se oculte cuando haga clic en cualquier lugar excepto en el menú desplegable.jQuery ocultar el menú desplegable al hacer clic en cualquier lugar menos en el menú
Tengo algún código en funcionamiento, hasta que no se cierra al hacer clic en el menú; sin embargo, cuando hace clic en el documento cuando el menú está cerrado, muestra el menú, por lo que cambia continuamente sin importar dónde haga clic.
$(document).click(function(event) {
if ($(event.target).parents().index($('.notification-container')) == -1) {
if ($('.notification-container').is(":visible")) {
$('.notification-container').animate({
"margin-top": "-15px"
}, 75, function() {
$(this).fadeOut(75)
});
} else {
//This should only show when you click: ".notification-button" not document
$('.notification-container').show().animate({
"margin-top": "0px"
}, 75);
}
}
});
Para describir su código; Vincula el evento de clic al documento completo y cuando se activa ese evento, comprueba si el elemento de destino (cliqueado) tiene algún elemento primario con la clase ".notification-container" y, si lo hace, comprueba si hay algún elemento con esa clase es visible. Si es así, oculta (anima) todos los elementos con la clase ".notification-container" y, de lo contrario, los muestra (anima) en su lugar. – Stefan
La mejor solución disponible es [stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element][1]. [1]: http://stackoverflow.com/questions/152975/how-to-detect-a-click-outside-an-element – lightofsouls
Hey hombre, ¿le importaría aceptar una respuesta? :) – epoch