jquery: mouseout Ereignis feuern, auch nachdem ich ein Click-Ereignis verwendet, um das div zu verbergen

StackOverflow https://stackoverflow.com/questions/4733133

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?

War es hilfreich?

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!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top