2011-01-11 86 views
2

在我的网页我有多个div的与类名当然。然后有一个div本身与编号dateFormjQuery的链式动画与appendTo()

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

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

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

回答

4

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

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

哇,这完全有效。我从来没有使用函数(e),但是我创建了自己的函数,将appendTo插入该函数,然后在fadeOut回调函数中调用该函数,但那没有奏效。谢谢! – kd7iwp 2011-01-11 00:09:23