Как повернуть анимацию в JQuery

0

У меня есть код из другого потока при обращении анимации, но я не могу заставить его работать, поэтому я подумал, что снова попрошу. Вот мой код:

$(function(){
$('prices').toggle(function(){
    $('#prices').animate({
       height: '+=200px'
    });
}, function(){
    $('#prices').animate({
       height: '+=200px'
       });
     });
});

Мне просто нужно, чтобы кто-то сказал мне, почему это не работает. Он ничего не делает при переключении.

Теги:

1 ответ

1

Ошибка синтаксиса

У вас есть синтаксическая ошибка в строке 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);
        }
    });
});

Демо-версия JSFiddle

  • 0
    Теперь весь div (цены) исчезает? @Терри
  • 0
    @KyleKoogler Это потому, что эта специфическая особенность переключения больше не используется в jQuery v1.8 и более: api.jquery.com/toggle-event
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню