Así que tengo un menú desplegable que se muestra con un clic, según los requisitos comerciales. El menú se vuelve a ocultar después de alejar el mouse de él.
Pero ahora se me pide que lo mantenga en su lugar hasta que el usuario haga clic en cualquier parte del documento. ¿Cómo se puede lograr esto?
Esta es una versión simplificada de lo que tengo ahora:
$(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>
Intenté algo como esto $('document[id!=MainOptSubMenu]').click(function()pensando que se activaría en cualquier cosa que no fuera el menú, pero no funcionó.