切换多个动作

时间:2012-05-10 14:49:50

标签: jquery

我有一个有很多事件的div。我尝试了两件事:

1-使用条件执行切换的第二部分。它有效,但响应并不完美,有一秒钟的延迟。我在这里简化了案例:http://jsfiddle.net/T26vF/2/

2 - 然后我尝试了一个简单的切换。当我点击一个对象时,它可以正常工作。但问题是,当我在切换的第一部分时,我点击背景或其他对象并回到第一个对象,我必须点击两次,(第一次点击仍然执行第二部分的切换)。我在这里简化了案例:http://jsfiddle.net/T26vF/4/

$(function(){

    // THIS
    $(".arrodonit").toggle(
        function(){ $(this).children("img").animate({"width":"411px","marginLeft": "-85px","marginTop": "-80px"}, 900); 
                    $(this).siblings(".fons").fadeOut("slow");
                  },

        function(){ $(this).children("img").animate({"width":"233px","marginLeft": "0px","marginTop": "0px"}, 900); 
                    $(this).siblings(".fons").fadeIn("slow");
        }
    );

    // NOT THIS
    $(".arrodonit").click(function(e) {
        e.stopPropagation();
        $('.arrodonit').not(this).siblings(".fons").fadeIn("slow");
        $('.arrodonit').not(this).children("img").stop().animate({ "width":"233px","marginLeft": "0px","marginTop": "0px",}, 900);
        $(".mesInfo").fadeIn()
        $(".info").fadeOut()
    });

    // DOCUMENT
    $(document).click(function() {
       $('.fons').fadeIn();
       $('.arrodonit img').animate({ "width":"233px","marginLeft": "0px","marginTop": "0px"}, 900); 
    });

})

我问:
- 我的代码有什么问题?
- 如果我在第一种情况下作出有条件的话,为什么会有延迟呢? - 为什么我必须在第二个例子中点击两次?
- 有更好的方法来做同样的行动吗?

1 个答案:

答案 0 :(得分:0)

这只是一招, 如果您有一系列动画事件,请尝试使用stop().animate(),这样可以减少延迟

希望这有帮助