Использование css('height')
возвращает также единицу измерения, которая обычно равна «px». Так что в этом случае вы сравниваете '30px' == '30'
. Используйте метод height()
, который возвращает числовое значение, и сравните его с целым числом.
Кроме того, вы не указываете, какой объект вы хотите анимировать, так как элемент не переносится внутри предложения if
. Используйте метод each()
для элемента, чтобы создать замыкание:
$(function(){
$('.rightColumnButton').each(function() {
if($(this).height() == 30) {
$(this).animate({marginTop: "10px"}, 500);
}
});
});
EDIT
Вместо того, чтобы писать в комментариях, я подумал, что уясню себя здесь. Я предполагаю, что ваша цель состоит в том, чтобы анимировать все элементы, которые имеют высоту 30 пикселей. В исходном посте у вас было это:
if($( '.rightColumnButton' ).css("height") == "30"){
Это правильно выбирает все '.rightColumnButtons', но когда вы используете вызов css("height")
, вы получаете только высоту первого элемента. Если бы ваш код работал, он оживил бы все элементы div , только если бы первый элемент div имел высоту 30 пикселей.
Вот где метод each()
пригодится. Он просматривает каждый элемент в выделении и сравнивает высоты независимо друг от друга и анимирует при необходимости.