2011-04-05 68 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(因为第一部分内容没有淡出),但是没有你的标记的例子是不可能的。