简体   繁体   中英

jQuery second click alternation not working?

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

I've updated using toggle instead on click - though still can't get smooth alternations.

I've got a mix of javascript and jquery here.

I'm trying to get an element, so when it is clicked, it runs an animation (open). And on the second click, the animation runs to the starting point (close).

But for some reason I can't get the second click alternation to work. Can anyone advise on what I'm doing wrong? Thanks

The $('.home-module').toggle is the bit I'm having problems with.

See script below...

$(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");

});

It seems to be really unresponsive on the click to animations, and the second click/alternation is really delayed and does strange things?

Thanks


My original code...

$(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");

});

homeOpen始终设置为false,因此永远不会满足您的if (homeOpen)条件。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM