il mio problema è il seguente: Ho ottenuto un trigger (a) e un popup (div). Il div non giace annidato all'interno dell'ancora.check per ('div') mouseenter on ('a') mouseleave
- Quando passo il mouse su a, voglio che div divenga visibile.
- Quando vado da un al div, voglio che rimanga visibile.
- Quando lascio il div, voglio che si chiuda.
- Quando passo il mouse su ae esco senza entrare nel div, voglio che il div si chiuda.
Ho capito di più, ma ora mi sto battendo con il requisito n. 2. Durante il controllo di mouseleave su a, controllo se c'è un mouseenter sul div. Se lo è, voglio abortire il mouseleave. In caso contrario, voglio chiudere il div.
Cosa sto sbagliando? È questo anche il modo giusto per farlo?
Ecco il markup:
<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>
Ecco il 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)
};
});
Grazie per la tua risposta e per aver creato un esempio! Ma anche dopo averlo guardato, non ho idea di quello che stai facendo lì. Devo ammettere che non ho alcuna esperienza precedente in jQuery o programmazione in generale, e devo essere in grado di mantenere il mio codice in caso sorgano problemi quando lavoro con esso. Non posso dire perché la prima risposta sia una cattiva programmazione, ma per ora sto seguendo questo approccio perché posso effettivamente capirlo :) – chabuya