2010-01-27 73 views
0

我正在使用jQuery 1.4.1。什么是动画做一个元素,防止它隐藏

a = $('#hello') 
      .animate({height: '100px'}); 
a.hide(); 

上面的代码不会隐藏元素。我知道解决方案。解决方案是

a.animate({height: 'hide'}); 

但是我有兴趣找出什么动画做的元素,使他们不回应隐藏。我查看了源代码,但找不到答案。

有谁知道吗?

回答

3
a = $('#hello') 
      .animate({height: '100px'}); 
a.hide(); 

我看到的问题是,在您调用动画函数后,它会立即隐藏。 所以它开始动画,然后hide()隐藏它,它继续animatning,这将再次显示它。 你想要的东西像

$('#hello').animate({height: '100px'},2000,function(){$(this).hide()}); 
+0

我可能很愚蠢,但http://docs.jquery.com/Effects/animate显示动画的第三个参数是'easing'。你不应该使用第四个? (回调) – 2010-01-27 14:37:39

+0

我不跟着你。你建议的是1)动画2)隐藏3)再次动画。再次制作动画的指令在哪里? – 2010-01-27 14:41:52

+0

@Daniel注意到使参数选项可选的参数[]。 – 2010-01-27 15:05:33

0

问题是,动画需要一些时间才能完成..

虽然正在进行所选元素将保持可见..

质朴的哥们提供了正确的替代方案..

+0

我不是在寻找替代,因为我在问题中提到。我想知道动画对元素的作用,这些元素使他们不回应隐藏。 – 2010-01-27 14:42:37

+0

@dorelal:元素实际上是-does- hide,animate()会在特定的持续时间内继续向100px的高度运动,这会使其再次可见。 – 2010-01-27 14:45:41