0

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

クリックの代わりにトグルを使用して更新しましたが、それでもスムーズな交代を取得することはできません。

ここにjavascriptとjqueryを組み合わせています。

要素を取得しようとしているので、クリックするとアニメーションが実行されます(開く)。2回目のクリックで、アニメーションは開始点(閉じる)まで実行されます。

しかし、何らかの理由で、2回目のクリックの交互操作を機能させることができません。誰かが私が間違っていることについてアドバイスできますか?ありがとう

これ$('.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");

});

アニメーションへのクリックでは本当に反応がないようで、2回目のクリック/交代は本当に遅れて奇妙なことをしますか?

ありがとう


私の元のコード...

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

});
4

1 に答える 1

0

homeOpenは常にfalseに設定されているため、if (homeOpen)条件が満たされることはありません。

于 2012-02-05T20:08:56.907 に答える