2010-05-28 7 views
6

J'ai un div dans la forme quelque chose commeJquery- Cacher div

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

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

</form> 

je suis l'information de la population à l'intérieur div (idshow) sur une touche événement click. ce que je veux quand je clique mal en dehors de div (idshow), il devrait être cacher. juste comme je clique sur le menu puis le menu est l'affichage et quand je clique sur le menu extérieur il va se cacher. J'ai besoin tout en utilisant jquery

Répondre

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

Vous pouvez faire ce que vous voulez comme ceci:

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

Qu'est-ce qui se passe ici est quand vous cliquez, l'événement click bouillonne tout le chemin à document, si elle arrive là nous cachons le <div>. Lorsque vous cliquez à l'intérieur de ce <div> cependant, vous pouvez arrêter la bulle de se lever jusqu'à document en utilisant event.stopPropagation() ... donc le .hide() ne se déclenche pas, court et simple :)