2011-03-16 74 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