动画开始时jQuery .animate回调触发

时间:2013-07-26 13:12:14

标签: jquery callback jquery-animate hide

我对.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

2 个答案:

答案 0 :(得分:2)

.fadeIn.fadeOut自己执行.show().hide()。 尝试删除它们而不使用动画。

只需$(element).fadeOut()

同样对于事件,您使用的是旧的jquery语法。查看.on()

的文档

答案 1 :(得分:0)

@Frederic Hamidi我的坏......道歉

请访问此链接以获取解决方案

http://fisherwebdev.com/wordpress/2009/06/08/scope-issues-with-the-callback-to-jquerys-animate-function/

快速查看上面的链接并得出结论,你需要为此添加一个ref变量。