【问题标题】:How to do something after an event in jQuery?如何在 jQuery 中发生事件后做某事?
【发布时间】:2015-10-11 19:07:30
【问题描述】:

我想在另一个动画完成后播放一个动画。

我使用了这个代码:

$("#test_01").stop().animate({height: '500'}, 2500).promise($("#test_02").fadeIn(2500));

这会同时为两者设置动画 - 这不是我想要的。 我需要先运行$("#test_01"),然后运行$("#test_02")

我该怎么做?

【问题讨论】:

    标签: jquery jquery-animate promise fadein


    【解决方案1】:

    用你的代码试试done

    $("#test_01").stop().animate(
        {height: '500'},
        2500
    ).promise().done(
        function(){
            $("#test_02").fadeIn(2500)
        }
    ); 
    

    done 函数回调将在动画中的所有代码完成后工作。

    【讨论】:

    • 很高兴帮助标记我的答案已验证,以便对其他人也有帮助
    【解决方案2】:

    只需使用animate()的完整回调

    $("#test_01").stop().animate({
        height: '500'
    }, 2500, function () {
        $("#test_02").fadeIn(2500)
    });
    

    如果您正在寻找基于 promise 的解决方案,那么您需要获取 promise 对象,然后将 done 回调添加到您将执行延迟操作的 promise 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      相关资源
      最近更新 更多