:悬停属性重写jQuery效果后,如何让它恢复?

:悬停属性重写jQuery效果后,如何让它恢复?

问题描述:

我有一个动画功能...:悬停属性重写jQuery效果后,如何让它恢复?

 
    function flashGreen(e) { 
       backg = e.css('backgroundColor'); 
       e.animate({ backgroundColor: "#5ccc96" }, 1000); 
       e.animate({ backgroundColor: backg }, 500); 
      } 

,象这样

 
.container { 
    padding:5px; 
    background:#eaeaea; 
} 
.containerr:hover { 
    border:1px #558ecb solid; 
    background:#7dcdf2; 
    padding:4px; 
}

悬停工作根据需要之前我所说的flashGreen功能,但一个css后之后,我打电话功能,背景颜色不再改变,但边框仍然出现。

这是怎么回事?我注意到jQuery在animate函数后面为backgroundColor添加了一个“style”属性。所以我认为“风格”是压倒类的属性。

在backgroundColor上调用动画后,如何让背景颜色悬停工作。

正如您已经注意到的,jQuery为您的元素添加了style属性。动画完成后,您可以简单地将其删除

e.animate({ backgroundColor: backg }, 500, function() { 
    e.removeAttr("style"); 
}); 
+0

谢谢,你可能想把第二个'''改为'}',以防将来有人引用它。 – DantheMan 2010-08-25 20:40:33

这是优先级/优先级问题。由于动画给你的元素style="background-color",这是优先于你的CSS文件。发生这种情况是因为内联样式优先于任何非内联样式(至少在正常情况下)。

当我发布解释时,peirix发布了解决方案。

+0

团队合作hi-5:D – peirix 2010-08-25 20:37:25

+0

Woo!做得好! – 2010-08-26 12:56:01