jQuery чередование второго щелчка не работает?

http://jsfiddle.net/motocomdigital/uTV5k/18/

Я обновил, используя вместо этого переключение по щелчку - хотя все еще не могу получить плавные чередования.

У меня есть смесь JavaScript и JQuery здесь.

Я пытаюсь получить элемент, поэтому при нажатии на него запускается анимация (открыть). И по второму щелчку анимация запускается до начальной точки (закрыть).

Но по некоторым причинам я не могу заставить чередование второго щелчка работать. Может кто-нибудь посоветовать, что я делаю не так? Спасибо

$('.home-module').toggle это бит у меня проблемы.

Смотри скрипт ниже...

$(window).load(function(){

    $(window).bind("orientationchange resize", function(e) {

        $('.home-module').each(function() {

            var homeModule  = $(this).height(),
                homeTitle   = $(this).find('.home-title-button').outerHeight(),
                homeStart   = homeModule - homeTitle,
                homeOpen    = false;

            $(this).find('.home-title').css("top", homeStart + "px");

            $('.home-module').toggle(
                function() {
                    // first alternation
                    $(this).find('.home-title').animate({ top: homeStart + "px" });
                },
                function() {
                    // second alternation
                    $(this).find('.home-title').animate({ top: 0 + "px" });
                }
            );

        }); 

    }).trigger("resize");

});

Кажется, что это действительно не отвечает на анимацию при нажатии, а второй щелчок / чередование действительно задерживается и делает странные вещи?

Спасибо


Мой оригинальный код...

$(window).load(function(){

    $(window).bind("orientationchange resize", function(e) {

        $('.home-module').each(function() {

            var homeModule  = $(this).height(),
                homeTitle   = $(this).find('.home-title-button').outerHeight(),
                homeStart   = homeModule - homeTitle,
                homeOpen    = true;

            $(this).find('.home-title').css("top", homeStart + "px");

            $('.home-module').on('click', function () {

                if (homeOpen) {

                    $(this).find('.home-title').animate({ top: homeStart + "px" });
                    homeOpen = false;

                } else {

                    $(this).find('.home-title').animate({ top: 0 + "px" });
                    homeOpen = true; 

                }
            });

        }); 

    }).trigger("resize");

});

1 ответ

Решение

homeOpen всегда установлен в ложь, так что ваш if (homeOpen) состояние никогда не выполняется.

Другие вопросы по тегам