J'ai donc un menu déroulant qui s'affiche en un clic, conformément aux exigences de l'entreprise. Le menu redevient caché lorsque vous le quittez avec la souris.
Mais on me demande maintenant de faire en sorte qu'il reste en place jusqu'à ce que l'utilisateur clique n'importe où dans le document. Comment cela peut-il être réalisé ?
C'est une version simplifiée de ce que j'ai maintenant :
$(document).ready(function() {
$("ul.opMenu li").click(function(){
$('#MainOptSubMenu',this).css('visibility', 'visible');
});
$("ul.opMenu li").mouseleave(function(){
$('#MainOptSubMenu',this).css('visibility', 'hidden');
});
});
<ul class="opMenu">
<li id="footwo" class="">
<span id="optImg" style="display: inline-block;"> <img src="http://localhost.vmsinfo.com:8002/insight/images/options-hover2.gif"/> </span>
<ul id="MainOptSubMenu" style="visibility: hidden; top: 25px; border-top: 0px solid rgb(217, 228, 250); background-color: rgb(217, 228, 250); padding-bottom: 15px;">
<li>some</li>
<li>nav</li>
<li>links</li>
</ul>
</li>
</ul>
J'ai essayé quelque chose comme ça $('document[id!=MainOptSubMenu]').click(function()
en pensant que ça se déclencherait sur tout ce qui n'est pas le menu, mais ça n'a pas marché.
0 votes
J'ai une réponse ici. > http://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element/43405204#43405204
0 votes
Duplicata possible de Comment détecter un clic à l'extérieur d'un élément ?