Detectar click fuera de un elemento en javascript ?

Publicado por Emily Plank
hace 10 años

<p>Hola a todos nuevamente!</p>

<p>Tengo una página con un menu desplegable que al hacerle click se abre. Esto lo hago con Javascript. Y me gustaría saber cuál sería la forma CORRECTA de saber si el usuario hizo click FUERA de este menu, para de esa forma cerrarlo!</p>

<p>Estoy usando JQuery, necesitaría algo como esto:</p>

<pre class="prettyprint"> $( '.menu' ).clickFuera( function() { // cerrar el menu } );</pre>

<p> </p>

<p> </p>

<p>Gracias Ale!!</p>

jquery javascript
Respuesta de Ø Ale Herrera
hace 10 años

<p>hola, no hay forma de detectar click afuera de algo, porque como sabes que es "afuera", lo que podes hacer es</p>

<p> </p>

<pre class="prettyprint"> $(".menu").parent().click(function() {

});</pre>

<p> </p>

<p>De esta forma, vas a capturar el click en el elemento que contiene a tu menu, lo que seria un "clickafuera"</p>

Respuesta de Anibal Cuno
hace 10 años

<p>Podrías usar el evento focusout()</p>

<pre class="prettyprint"> $('.menu').focusout( function() { // cerrar el menu } );</pre>

<p> </p>