带有appendTo()的jquery链式动画

时间:2011-01-11 00:03:04

标签: jquery

在我的页面上,我有多个div,类名为 course 。然后有一个div本身带有id dateForm

我想要做的是将dateForm追加到我点击的 course div的任何实例中。它应该做的是从当前位置fadeOut,将(appendTo)移动到新位置,然后淡入。

然而,它总是将自己添加到新的位置,然后逐渐消失并逐渐淡入。任何想法为什么链条不起作用?我尝试过延迟,我尝试将appendTo移动到另一个方法并在fadeOut的回调上调用它,但没有任何效果。我甚至尝试在淡出后插入一个alert(),但是在fadeOut函数运行之前会出现alert()消息。有什么想法吗?

          $(".course").click(function () {
            $("#dateForm").fadeOut("slow").appendTo($(this)).fadeIn("slow");
          });

1 个答案:

答案 0 :(得分:4)

问题是fadeOut在动画结束前立即返回。在动画完成后,您应该使用callback参数来运行代码:

$('.course').click(function(e){
    $("#dateForm").fadeOut("slow", function() { // code to run after the fadeOut is complete
        $(this).appendTo(e.target).fadeIn('slow');
    })
});