L'utilisation de css('height')
renvoie également l'unité, qui est généralement «px». Donc, dans ce cas, vous comparez '30px' == '30'
. Utilisez la méthode height()
qui renvoie une valeur numérique et la compare à un nombre entier.
De même, vous ne spécifiez pas l'objet que vous souhaitez animer, car l'élément n'est pas porté dans la clause if
. Utilisez la méthode each()
sur l'élément pour créer une fermeture:
$(function(){
$('.rightColumnButton').each(function() {
if($(this).height() == 30) {
$(this).animate({marginTop: "10px"}, 500);
}
});
});
EDIT
Au lieu d'écrire dans les commentaires, je pensais que je me préciser ici. Je suppose que votre but est d'animer tous les éléments qui ont une hauteur de 30px. Dans votre message original, vous avez eu ceci:
if($('.rightColumnButton').css("height") == "30"){
qui ne sélectionner tous les » .rightColumnButtons' Allright, mais lorsque vous utilisez l'appel css("height")
, vous obtenez seulement la hauteur du premier élément. Si votre code avait fonctionné, il aurait animé tous les div seulement si le premier div avait eu une hauteur de 30px.
C'est là que la méthode each()
est pratique. Il boucle chaque élément de la sélection et compare les hauteurs indépendamment les unes des autres et les anime si nécessaire.
Merci pour l'info, votre info était sur place, mais j'ai plusieurs divs, et je pense que cela ne vérifie que le premier. Les trois premiers ont une hauteur de 110px, j'en ai besoin pour tous les vérifier. – Jared
La méthode 'each' parcourt tous les éléments qui ont une classe 'rightColumnButton', donc elle les vérifie tous. –
Merci! Juste besoin de supprimer le premier "if (" – Jared