2011-04-05 69 views
0

我有以下代碼:jQuery的淡出和淡入工作不正常

$('#oldLoginProblem').fadeOut(); 
$('#newLoginProblem').fadeOut(); 
$('#newLoginProblem').fadeIn(); 

它每次我按下一個按鈕時運行。

在開始的時候,它會是這樣的:

foobar

但是,當我按下按鈕和運行代碼,它看起來是這樣的:

foobar

foobar2

第一個元素不會消失,它仍然存在。第二個元素顯示在下面,就好像我有一個簡單的.show()。而且,沒有以任何方式發生衰落。我該如何解決這個問題?

+0

您應該發佈您的HTML和整個jQuery,以便我們可以看到發生了什麼。 – 2011-04-05 17:21:44

+0

http://jsfiddle.net/p3469/試試這個 – rsplak 2011-04-05 17:24:34

+0

@rsplak - 不要使用延遲!他們不可靠。您應該使用回調來正確鏈接動畫。 http://jsfiddle.net/p3469/1/ – 2011-04-05 17:25:16

回答

1

如果你希望你的動畫序列中的發生,你需要使用回調觸發它們(否則他們將所有觸發一次,看起來像一個爛攤子):

$('#oldLoginProblem').fadeOut('slow', function(){ 
    $('#newLoginProblem').fadeOut('slow', function(){ 
     $('#newLoginProblem').fadeIn('slow'); 
    }); 
}); 

它也像你可能在你的標記中某個地方有一個不好的ID(因爲第一部分內容沒有淡出),但是沒有你的標記的例子是不可能的。