2010-10-31 4 views
12

Je voudrais à chaque fois que la div se développe, pour ajouter la classe 'selecionado' une fois l'expansion terminée. Lorsque la contraction est terminée (la partie slideUp), je voudrais supprimer cette classe. Puis-je avoir de l'aide ici s'il vous plait?jquery - comment ajouter/supprimer des classes sur slideToggle?

$('#btCategoriaA').click(function() 
{ 
    $('#listaCategoriaA').slideToggle('slow', function() { 
    $('#btCategoriaA').addClass('selecionado'); 
    }); 
}); 

Merci à l'avance, MEM

Répondre

31

Vous pouvez activer ou désactiver la classe à l'aide .toggleClass() en fonction de si l'élément .is():visible après l'animation, comme ceci:

$('#btCategoriaA').click(function() { 
    $('#listaCategoriaA').slideToggle('slow', function() { 
    $('#btCategoriaA').toggleClass('selecionado', $(this).is(':visible')); 
    }); 
}); 
+1

Vous avez vraiment rocher sur don de n'est-ce pas? : P Merci beaucoup. : D – MEM

+0

Encore une chose s'il vous plaît, je fais cela en utilisant des états de css comme un: hover. La chose est, j'ai besoin de désactiver le hover, une fois que l'utilisateur clique, sinon, l'effet sera assez étrange, car une fois qu'il clique, l'état devrait changer, mais comme il est plané, il ne le fait pas. : s Existe-t-il un moyen de désactiver le a: hover appliqué une fois que l'utilisateur clique ou quelque chose? – MEM

+0

@MEM - Vous pouvez avoir le ': hover' comme' a.Off: hover' et supprimer cette classe 'Off' lors de l'ajout du' selecionado'. –