在另一个fadeOut的回调中停止fadeOut

时间:2011-09-08 09:59:57

标签: jquery

我试图阻止动画在另一个动画的回调中传播,我试图通过将.stop(true, true)添加到我希望停止褪色的元素上来直接停止动画但是它没有似乎停止了动画。

我创造了一个小提琴 - >点击链接http://jsfiddle.net/5rEWa/

以下是代码:

$('.fadeMe').delay(3000).fadeOut(1000, function(){
        $('.meToo').fadeOut(1000);
    });


    $('#stop').click(function(){
       $('.meToo').stop(true, true);
    }); 

一如既往,我非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/5rEWa/8/

解决方法是调用stop().animate({opacity:'100'});以在启动后停止fadeOut()动画。如果您还希望能够在开始之前取消它,则需要执行以下操作:

$(function(){
    var isCancelled = false;
    $('.fadeMe').delay(3000).fadeOut(1000, function(){
        if (!isCancelled )
            $('.meToo').fadeOut(1000);
    });

    $('#stop').click(function(){
       isCancelled = true;
       $('.meToo').stop().animate({opacity:'100'});
    });       
});