Je voudrais savoir si c'est la bonne façon de masquer les éléments visibles lorsque vous cliquez n'importe où sur la page.
$(document).click(function (event) {
$('#myDIV:visible').hide();
});
L'élément (div, span, etc.) ne doit pas disparaître lorsqu'un événement de clic se produit dans les limites de l'élément.
jquery
events
event-bubbling
Franek
la source
la source
.myDiv
élément. Par exemple, si vous avez une liste déroulante de sélection à l'intérieur.myDiv
. Lorsque vous cliquez sur sélectionner, il pensera que vous cliquez en dehors de la boîte.Essaye ça
J'utilise le nom de la classe au lieu de l'ID , car dans asp.net vous devez vous soucier des trucs supplémentaires que .net attache à l'id
EDIT - Puisque vous avez ajouté un autre morceau, cela fonctionnerait comme ceci:
la source
Depuis jQuery 1.7, il existe une nouvelle façon de gérer les événements. J'ai pensé que je répondrais ici juste pour montrer comment je pourrais procéder de la «nouvelle» façon. Si vous ne l'avez pas fait, je vous recommande de lire la documentation jQuery pour la méthode "on" .
Ici, nous abusons des sélecteurs de jQuery et du bouillonnement d'événements. Notez que je m'assure de nettoyer le gestionnaire d'événements par la suite. Vous pouvez automatiser ce comportement avec
$('.container').one
( voir: docs ) mais parce que nous devons faire des conditions dans le gestionnaire qui ne sont pas applicables ici.la source
Cet exemple de code suivant semble fonctionner le mieux pour moi. Bien que vous puissiez utiliser 'return false' qui arrête toute gestion de cet événement pour le div ou l'un de ses enfants. Si vous voulez avoir des contrôles sur le div pop-up (un formulaire de connexion pop-up par exemple), vous devez utiliser event.stopPropogation ().
la source
Merci, Thomas. Je suis nouveau sur JS et je cherchais fou une solution à mon problème. Votre aide.
J'ai utilisé jquery pour créer une boîte de connexion qui glisse vers le bas. Pour une meilleure expérience utilisateur, j'ai décidé de faire disparaître la boîte lorsque l'utilisateur clique ailleurs que sur la boîte. Je suis un peu gêné d'avoir utilisé environ quatre heures pour résoudre ce problème. Mais bon, je suis nouveau sur JS.
Peut-être que mon code peut aider quelqu'un:
la source
Ce que vous pouvez également faire, c'est:
Si votre cible n'est pas un div, masquez le div en vérifiant que sa longueur est égale à zéro.
la source
J'ai fait ce qui suit. Pensé à partager pour que quelqu'un d'autre puisse également en bénéficier.
Faites-moi savoir si je peux aider quelqu'un à ce sujet.
la source
div#newButtonDiv
n'est pas cliqué. Je vous recommande de supprimer le deuxième.click()
sur la ligne 4 (si vous faites cela, n'oubliez pas de supprimer les accolades fermantes, les parenthèses et le point-virgule - ligne 9).Essaye ça:
la source
Une autre façon de masquer le conteneur div lorsqu'un clic se produit dans un élément not children;
la source
Ici, #suggest_input in est le nom de la zone de texte et .suggest_container est le nom de la classe ul et .suggest_div est l'élément div principal de ma suggestion automatique.
ce code sert à masquer les éléments div en cliquant n'importe où dans l'écran. Avant de tout faire, veuillez comprendre le code et le copier ...
la source
Essayez ceci, cela fonctionne parfaitement pour moi.
la source
mais vous devez également garder à l'esprit ces choses. http://css-tricks.com/dangers-stopping-event-propagation/
la source
Voici une solution CSS / small JS fonctionnelle basée sur la réponse de Sandeep Pal:
Essayez-le en cliquant sur la case à cocher puis en dehors du menu:
https://jsfiddle.net/qo90txr8/
la source
Cela ne fonctionne pas - cela masque le .myDIV lorsque vous cliquez à l'intérieur.
la source
Juste 2 petites améliorations aux suggestions ci-dessus:
arrêter la propagation sur l'événement qui l'a déclenché, en supposant qu'il s'agit d'un clic
la source
la source
la source
la source
Solution simple: masquez un élément sur un événement de clic n'importe où en dehors d'un élément spécifique.
la source