2009-10-13 8 views
0

J'ai une balise div et je remplis les résultats de la recherche sur une grille personnalisée, qui est placée à l'intérieur de ce divtag.Masquage de la balise div lorsque l'utilisateur clique à l'extérieur de l'étiquette div

Lorsqu'un utilisateur clique sur le bouton de recherche, j'affiche les résultats dans la balise div mentionnée ci-dessus.

J'ai l'obligation de fermer l'étiquette div ci-dessus lorsque l'utilisateur clique à l'extérieur de l'étiquette div.

Il est similaire à google search auto comlete.

Merci d'avance.

+0

recherche de solution en javascript/jquery? – ukanth

+0

J'ai besoin de solution en javascript. – Madhu

Répondre

1

Idée de base

  1. Fil un événement onclick sur l'étiquette du corps pour cacher la div.
  2. Câblez un événement onclick sur la balise div et arrêtez le bouillonnement de l'événement.

Voir Event order

Pour arrêter l'événement bouillonnant

Dans le modèle Microsoft vous devez définir la propriété cancelBubble de l'événement à true.

window.event.cancelBubble = true 

Dans le modèle W3C, vous devez appeler la méthode stopPropagation() de l'événement.

e.stopPropagation() 
+0

Merci pour votre réponse. J'utilise la page maître asp.net et je ne peux pas utiliser l'événement body onclick car il sera utilisé dans de nombreuses autres pages de contenu. Dans le même temps comment puis-je trouver l'ID généré html pour l'étiquette div utilisée dans le contrôle de l'utilisateur? Merci d'avance – Madhu

+0

@Madhu: Comment trouver l'ID généré par html pour la balise div: Postez-le comme une question distincte avec un exemple de code source de la façon dont il est défini. – awe

+0

Désolé pour la réponse tardive. Comment arrêter les bulles d'événements en javascript? – Madhu

1

En jQuery, quelque chose comme ceci:

$('body').click(function(ev){ 
    if (!$(this).hasClass('your_result_container_classname') { 
    // code to hide result div 
    $('body').unbind('click'); // remove event handler. add again when results shown. 
    } 
}); 
+0

Que se passe-t-il lorsque l'utilisateur clique à l'intérieur d'un élément de l'élément div? – rahul

Questions connexes