У меня есть код из другого потока при обращении анимации, но я не могу заставить его работать, поэтому я подумал, что снова попрошу. Вот мой код:
$(function(){
$('prices').toggle(function(){
$('#prices').animate({
height: '+=200px'
});
}, function(){
$('#prices').animate({
height: '+=200px'
});
});
});
Мне просто нужно, чтобы кто-то сказал мне, почему это не работает. Он ничего не делает при переключении.
У вас есть синтаксическая ошибка в строке 2: вместо этого используйте #prices
:
$(function(){
$('#prices').toggle(function(){
$('#prices').animate({
height: '+=200px'
});
}, function(){
$('#prices').animate({
height: '+=200px'
});
});
});
.toggle()
эффекта .toggle()
в ≥v1.8 Однако следует отметить, что в более поздних версиях jQuery (v1.8 и v1.9) эта особенность метода .toggle()
устарела. Вам нужно будет привязать это событие к обработчику кликов и сохранить состояние как переменную.
Кроме того, поскольку вы все время увеличиваете высоту на 200 пикселей, не имеет смысла использовать функцию переключения в любом случае;) если вы не хотите, чтобы вы уменьшали высоту до 200 пикселей после каждого другого нажатия:
$(function () {
$('#prices').click(function () {
if($(this).data("toggle") == 1) {
// Open state
// The height should decrease when open state is registered
// Effect: To collapse the open state
$(this).animate({
height: '-=200px'
});
// Now set state to collapsed
$(this).data("toggle", 0);
} else {
// Resting/collapsed state
// The height should increase when resting state is registered
// Effect: To expand the collapsed state
$(this).animate({
height: '+=200px'
});
// Now set state to open
$(this).data("toggle", 1);
}
});
});