2011-06-29 121 views
0
$('.a').bind('mouseover',function(){ 
    $('.a').addClass("b"); 
    }).bind('mouseout',function(){ 
    $('.a').removeClass("b"); 
    }); 

我要添加淡入淡出在上面的代码,如:jQuery的addClass淡入淡出

$('.a').bind('mouseover',function(){ 
$('.a').addClass("b").fadeIn('slow'); 
}).bind('mouseout',function(){ 
$('.a').removeClass("b").fadeOut('fast'); 
}); 

但是,这并不为我工作...试图谷歌,但没有任何工作。

+0

你确定它是$(“。a”)而不是$(“a”)? –

+0

噢!它是'$(“。a”)'。上面的代码没有淡化效果很好。 –

+0

什么不行?没有动画?或者它会抛出一个错误? – Dogbert

回答

4

您的代码工作作为无缺陷但考虑:

  • fadeOut隐藏元素,你将无法再在它悬停。
  • fadeIn对已经可见的元素不会做任何事情。
+2

另外考虑绑定'mouseenter' /'mouseleave'而不是'mouseover' /'mouseout'来避免冒泡问题。 –

+0

所以你的意思是我不能通过这种方式添加动画? –

1

首先,我认为你的fadeOutfadeIn是错误的方法。

不能淡入东西mouseover,因为事实上,你正在逐渐把它意味着它不是摆在首位可见的,因此你不能mouseover它。

假设是这种情况,并且您切换它们,则会导致第二个问题,一旦淡出,mouseout将自动启动,因为鼠标不再位于元素上方,因为该元素不可见(您' ve只是淡化了它out)。

你能确认你正在寻找哪种效果吗?可能有其他选择。

+0

现在我明白了,现在我必须在2个不同的元素上使用它。谢谢 –

+0

没问题,祝你好运。 – tjm