jquery: événement mouseout tir même après avoir utilisé un événement click pour cacher la div

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

Question

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()
});

donc ce mon code, le problème est lorsque l'événement click est déclenché tout va bien, na dissapears mais le moment où vous déplacez votre souris, il reappers à nouveau. Je me suis dit que le problème est que l'événement mouseout est déclenché, mais pour la vie de moi ne peux pas comprendre comment y remédier. toutes les idées?

Était-ce utile?

La solution

Dans la méthode mouseout, vérifier si le « na » est visible ou caché. S'il est caché, ne faites rien, que vous pouvez faire l'Animer.

EDIT:

Essayez votre méthode mouseout comme ceci:

jQuery("#na").mouseout(function(){
    if(jQuery("#na").is(":visible")){
       jQuery("#na").stop()
       jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
    }
});

Autres conseils

jQuery("#na").click(function(e)
{   
    e.stopPropagation();
    jQuery("#na").hide()
    jQuery("#back").show()
});

Je ne sais pas si cela fonctionnerait .. Théoriquement, cela devrait arrêter la propagation du ent, mais je suis mémorandums d'accord ne sais pas si elle arrête seulement l'événement click étant propagé!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top