2009-06-04 170 views
0

我有两个元素不应该同时处于活动状态,所以当一个元素被切换时,我会淡化另一个元素,但是我希望能够淡化打开的元素,然后将另一个英寸。有没有办法做到这一点,不是黑客?动画之间的jQuery延迟

<script ="text/javascript"> 

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

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

</script> 

这是我当前的脚本。

回答

2

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

<script type="text/javascript"> 
    $(function() { 
     $('#jlogin').click(function() { 
      $('#reg').fadeOut('fast', function() { 
       $('#login').toggle('fast'); 
      }); 
     }); 
     $('#jreg').click(function() { 
      $('#login').fadeOut('fast', function() { 
       $('#reg').toggle('fast'); 
      }); 
     }); 
    }); 
</script> 
+0

任何快速示例? – 2009-06-04 16:18:12

+0

我更新了我的例子。我想我最初误解了你正在做的事情,但这个例子应该淡出应该删除的元素,然后切换(可能)会显示的元素。你应该使用show而不是切换? – tvanfosson 2009-06-04 16:23:34

+0

我最初使用切换,因为我喜欢动画,会显示更有利吗?我需要能够在需要时重新打开元素。 – 2009-06-04 16:26:31