2010-09-09 6 views
0

J'ai ce code pour une liste déroulante et j'ai besoin de supprimer la classe 'hovered' sur '#products' après que le menu glisse et a disparu. Comment puis-je faire cela? Actuellement, il disparaît immédiatement surmouseoutJquery dropdown supprimer la classe après disparaît

Merci pour toute aide pour résoudre ce problème! :-)

$(function() { 
    var divTop = 168; 
    $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); 

    $('#products > a,#products div').hover(function(){ 
     $('#products').addClass('hovered'); 
     $('#products div ul').show().stop().animate({'margin-top': '0'}); 
    },function(){ 
     $('#products').removeClass('hovered'); 
     $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}); 
    }); 
}); 

Répondre

1

Vous pouvez appeler .removeClass() dans le rappel .animate(), comme ceci:

$(function() { 
    var divTop = 168; 
    $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); 

    $('#products > a,#products div').hover(function(){ 
     $('#products').addClass('hovered'); 
     $('#products div ul').show().stop().animate({'margin-top': '0'}); 
    },function(){    
     $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}, function() { 
      $('#products').removeClass('hovered'); 
     }); 
    }); 
}); 
+0

docs: http://api.jquery.com/animate/ – rfunduk

+0

Parfait! Merci pour ça. Va cocher ça comme répondu dans 5 –

+0

@Clint - bienvenue :) –

0

Vous pourriez probablement mettre

function(){ 
$('#products').removeClass('hovered'); 
} 

comme le rappel de la fonction animate()

0

Si je vous comprends bien, il semble que vous venez de besoin de faire usage de la fonction de rappel de .animate() (REF: http://api.jquery.com/animate/).

$(function() { 
    var divTop = 168; 
    $('#products div ul').css({'margin-top': '-' + divTop + 'px','float':'left'}); 

    $('#products > a,#products div').hover(function(){ 
     $('#products').addClass('hovered'); 
     $('#products div ul').show().stop().animate({'margin-top': '0'}); 
    },function(){ 
     $('#products div ul').show().stop().animate({'margin-top': '-' + divTop + 'px'}, function(){ 
      $('#products').removeClass('hovered'); 
     }); 
    }); 
}); 
Questions connexes