2010-05-28 22 views
6

Tengo un div dentro de forma algo así comoJquery- Ocultar div

<form> 
<div> 
showing some information here 
</div> 

<div id="idshow" style="display:none"> 
information here 
</div> 

</form> 

soy información de la población dentro de div (idshow) en algún evento de clic de botón. lo que quiero cuando hago clic fuera de div (idshow), debe ser hide. Al igual que hago clic en el menú, se muestra el menú y cuando hago clic en el menú exterior, se oculta. necesito todo utilizando jQuery

Respuesta

11
$(document).click(function(event) { 
    var target = $(event.target); 

    // Check to see if the target is the div. 
    if (!target.is("div#idshow")) { 
    $("div#idshow").hide(); 
    // Prevent default event -- may not need this, try to see 
    return(false); 
    } 
}); 
3

Usted puede hacer lo que quiere de esta manera:

$(document).click(function() { 
    $("#idshow").hide(); 
}); 
$("#idshow").click(function(e) { 
    e.stopPropagation(); 
}); 

Lo que sucede aquí es cuando se hace clic, el evento click se propaga hacia arriba todo el camino a document, si llega allí nos escondemos el <div>. Sin embargo, cuando hace clic dentro de ese <div>, puede detener el aumento de la burbuja hasta document usando event.stopPropagation() ... por lo que el .hide() no se dispara, en pocas palabras :)

Cuestiones relacionadas