jQuery第二次单击交替不起作用?

时间:2012-02-05 20:05:39

标签: javascript jquery alternation

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 :(得分:0)

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