jquery: mouseout Ereignis feuern, auch nachdem ich ein Click-Ereignis verwendet, um das div zu verbergen
-
12-10-2019 - |
Frage
jQuery("#na").mouseover(function()
{
jQuery("#na").animate({width:"325px", height:"203px", left:"-40px", top:"-25px"}, 200)
});
jQuery("#na").mouseout(function()
{
jQuery("#na").stop()
jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
});
jQuery("#na").click(function()
{
jQuery("#na").hide()
jQuery("#back").show()
});
so das ist mein Code, ist das Problem, wenn das Click-Ereignis ist alles in Ordnung ausgelöst wird, na verschwindet aber, sobald Sie Ihre Maus bewegen, es reappers wieder. Ich dachte ich, das Problem ist, dass das mouseout Ereignis ausgelöst wird, sondern für das Leben von mir kann nicht herausfinden, wie es zu beheben. irgendwelche Ideen?
Lösung
Innerhalb der mouseout Methode überprüfen, ob die „na“ sichtbar oder versteckt ist. Wenn es versteckt ist, nicht nichts tun, sonst kann man die belebte tun.
EDIT:
Versuchen Sie mouseout Methode wie folgt:
jQuery("#na").mouseout(function(){
if(jQuery("#na").is(":visible")){
jQuery("#na").stop()
jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
}
});
Andere Tipps
jQuery("#na").click(function(e)
{
e.stopPropagation();
jQuery("#na").hide()
jQuery("#back").show()
});
Ich bin nicht sicher, ob das funktionieren würde .. Theoretisch sollte dies die propogation des mous ent stoppen, aber ich bin nicht sicher, ob es nur das Click-Ereignis propogated wird aufhören!