jQuery чередование второго щелчка не работает? - PullRequest
0 голосов
/ 06 февраля 2012

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 Ответ

0 голосов
/ 06 февраля 2012

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

...