【发布时间】:2013-07-26 13:12:13
【问题描述】:
我对 .animate 函数的回调有疑问。当光标离开其父元素时,我试图让元素淡出。淡出后,该元素应该被隐藏,因此您不能将光标悬停在它上面或单击它。但是,隐藏元素的回调函数在动画开始时调用,而不是在结束时调用。我已经尝试了很多东西,但没有任何效果。如果需要,我可以发布我所有的代码(不多,只是一个带有一些我为自己制作的链接的小主页)。
var fadeIn = {opacity: "1"};
var fadeOut = {opacity: "0"};
$(".link-main").hover(function(){
$(this).children(".link-sub").css("z-index", "10").show().animate(fadeIn, 100);
}, function(){
// The animation.
$(this).children(".link-sub").animate(fadeOut, 100, "swing", function(){
$(this).hide();
});
});
此外,无论出于何种原因,简单地使用 .fadeIn 和 .fadeOut 都不起作用。元素会立即消失。
提前致谢!
编辑:这就是我现在拥有的 jsfiddle.net/rqfcZ
【问题讨论】:
-
您是否将$.fx.off 设置为
true? -
重复问题见下面的stackoverflow问题。 stackoverflow.com/questions/5397260/…
-
我已经设法通过将动画链接在一起来做类似的事情,因此每个动画都在前一个的回调中运行。您应该能够在 animate() 而不是 hover() 上使用回调?
-
@Akash,不是重复的,这个提问者正确地将回调传递给
animate(),而不是调用它。
标签: jquery callback jquery-animate hide