Javascript jQuery动画之间的延迟

Javascript jQuery动画之间的延迟,javascript,jquery,function,delay,Javascript,Jquery,Function,Delay,我有两个元素不应该同时处于活动状态,所以当其中一个被切换时,我会淡出另一个,但是我希望能够淡出打开的元素,然后将另一个引入。有没有办法做到这一点,而不是黑客 <script ="text/javascript"> $(function() { $('#jlogin').click(function() { $('#login').toggle('fast'); $('#reg').fadeOut('fast'); }); $

我有两个元素不应该同时处于活动状态,所以当其中一个被切换时,我会淡出另一个,但是我希望能够淡出打开的元素,然后将另一个引入。有没有办法做到这一点,而不是黑客

<script ="text/javascript">

$(function() {
    $('#jlogin').click(function() {
        $('#login').toggle('fast');
        $('#reg').fadeOut('fast');
    });

    $('#jreg').click(function() {
        $('#reg').toggle('fast');
        $('#login').fadeOut('fast');
    });
});

</script>

$(函数(){
$('#jlogin')。单击(函数(){
$('#login')。切换('fast');
$('#reg')。淡出('fast');
});
$('#jreg')。单击(函数(){
$('#reg')。切换('fast');
$('#login').fadeOut('fast');
});
});

这是我当前的脚本。

看看如何使用回调机制,以便可以链接动画。在上一个动画完成后,将调用动画方法的回调


$(函数(){
$('#jlogin')。单击(函数(){
$('#reg').fadeOut('fast',function(){
$('#login')。切换('fast');
});
});
$('#jreg')。单击(函数(){
$('#login').fadeOut('fast',function(){
$('#reg')。切换('fast');
});
});
});

我更新了我的示例。我想我最初误解了您的意图,但是这个示例应该淡出应该删除的元素,然后切换(大概)将显示的元素。你应该使用show而不是toggle吗?我最初使用toggle是因为我喜欢动画,show会更有用吗?我需要能够重新打开的元素,如果需要的话。此外,尝试了这个例子,并在一点调整后工作得很好,我认为你有一个隐藏的错误的地方。是的。我看到我缺少了一个结束符和分号。我已经更正了它(尽管我还没有测试)。如果元素总是在单击时显示,那么您可能希望使用toggle版本,该版本使用一个参数指示是否应显示它,例如toggle(true),以确保正确显示。