2011-03-16 39 views
2

我曾尝试用下面的东西:Jquery .when()和.then()不工作?

$.when($(smtg).fadeOut(300)).then($(smtg).fadeIn(300)); 

有什么不对的地方,而在http://api.jquery.com/jQuery.when/ Chrome的控制台文件说未捕获的错误类型:有没有方法时

@@'

+0

你使用jQuery 1.5吗? – Jon 2011-03-16 06:42:42

+0

那么我想'fadeOut()'不是'延迟兼容'? – 2011-03-16 07:01:54

+0

不兼容? – 2011-03-16 07:22:09

回答

4

编辑:您需要的jQuery 1.5 +

或者干脆做到这一点:

$(smtg).fadeOut(300, function() { 
    $(smtg).fadeIn(300); 
}); 

这基本上运行淡出第一,一旦动画完成,然后它将运行在我们的情况下,淡入

+0

我试过这个,看起来有点奇怪。第一个还没有淡出,第二个ady进来了。 – 2011-03-16 07:21:20

+0

为什么试图淡出同样的东西,然后马上淡化它? – moe 2011-03-16 18:22:30

+0

只是为了让一些交互式字段看起来像是一个带拖动的动态表单。 – 2011-03-18 02:07:10

0

最简单的可能性的回调函数,你正在使用jQuery的较旧的(大于1.5)版本。

+0

D'oh。殴打一拳。 – Malvolio 2011-03-16 06:47:20

+0

我更改为1.5.1不起作用 – 2011-03-16 07:21:42