mi problema es el siguiente: Recibí un disparador (a) y una ventana emergente (div). El div no se encuentra anidado dentro del ancla.check for ('div') mouseenter on ('a') mouseleave
- Cuando cierro sobre un, quiero que aparezca el div.
- Cuando voy de a a div, quiero que permanezca visible.
- Cuando salgo del div, quiero que se cierre.
- Cuando cierro sobre a y me voy sin ingresar el div, quiero que el div se cierre.
Tengo la mayor parte de eso resuelto, pero ahora estoy luchando con el requisito no. 2. Al verificar mouseleave en a, compruebo si hay un mouseenter en el div. Si es así, quiero abortar el mouseleave. Si no, quiero cerrar el div.
¿Qué estoy haciendo mal? ¿Es esta la forma correcta de hacer esto?
Aquí está el marcado:
<a href="#" class="popup_toggle" style='display:block;width:50px;height:50px;border:1px solid red;position:relative;'>Toggle</a>
<div class="popup_div" style='position:absolute;top:50px;left:0px;border:1px solid blue;display:none;'>Popup</div>
Aquí está el jQuery:
$('.popup_toggle').mouseenter(function() {
var element = $(this).next('.popup_div');
$.data(this, 'timer', setTimeout(function() {
element.show(100);
}, 500));
});
$('.popup_toggle').mouseleave(function() {
clearTimeout($.data(this, 'timer'));
if($('.popup_div').mouseenter==true)
{
return false;
}
else
{
$('.popup_div').hide(100)
};
});
¡Gracias por su respuesta y por crear un ejemplo! Pero incluso después de revisarlo, no tengo idea de qué estás haciendo allí. Tengo que admitir que no tengo experiencia previa en jQuery o programación en general, y necesito poder mantener mi propio código si surgen problemas al trabajar con él. No puedo decir por qué la primera respuesta es una mala codificación, pero voy a seguir con este enfoque por ahora porque realmente puedo entenderlo :) – chabuya