Je suis nouveau sur jQuery et j'ai besoin d'aide pour afficher et masquer un div sur clic. Fondamentalement, j'ai besoin de montrer un div (contenant un petit menu) une fois que l'utilisateur clique sur un lien, et dès que l'utilisateur clique sur un lien à l'intérieur de la div juste montré. Ou clique en dehors de la div j'ai besoin de cacher à nouveau la div.mon HTML ressemble à ceci (j'existerai dans beaucoup d'endroits sur la page).Afficher/masquer div on click en utilisant jQuery pour créer un "menu clic"
<a class="menu" href="#">Menu</a>
<div class="menu-content" style="display: none; position: absolute; border: 1px solid black; background-color: White;padding: 5px;">
<div><a href="#">Menu option 1</a></div>
<div><a href="#">Menu option 2</a></div>
</div>
J'ai aussi une div qui enveloppe toute la page que je pensais que je serais mis un autre clic-événement sur pour cacher la div (pour attraper des clics en dehors du menu réel).
Est-ce la bonne approche pour résoudre ce problème et comment puis-je supprimer les gestionnaires sur le div diviseur, etc, Que dois-je penser d'autre pour bien faire (si c'est la bonne approche)?
Mise à jour: Sur la base de la réponse acceptée ci-dessous j'ajouté à résoudre
//Need to return false here, otherwise the event will bubble up and trigger the hide on body
$('.menu').click(function() { $('.menu-content').hide();$(this).next().show();return false; });
$('body, .menu-content a').click(function() { $('.menu-content').hide();});
$('.menu-content a').click(function() { alert($(this)); });
Cela ne fonctionnera pas quand je l'ai à plusieurs endroits dans la page – Riri
mighta a aidé si vous aviez dit que dans votre Q - vous pouvez affiner le code i fourni avec le contexte et les filtres sur sélecteurs pour gérer tous les menus sur votre page –
@ Scott: J'ai fait ... "J'existerai dans beaucoup d'endroits sur la page". Et dans votre code, vous ne cachez le menu que sur un clic sur le lien réel ... Pas en dehors du menu. – Riri