Eu estou usando o jQUery plugin de cores. eu tenho um li
elemento que, ao passar o mouse, altera a cor de fundo. Isso é feito usando o padrão :hover
Pseudo classe CSS no arquivo CSS. Isso funciona bem, até eu usar o plugin de cores nele - o :hover
O efeito simplesmente para de funcionar quando eu "pressiono" o elemento usando este código:
$(".elements").first()
.delay(400)
.css({ backgroundColor: "#eeeeee" })
.animate({ backgroundColor: "#888888" }, 2000);
Alguém pode sugerir uma solução para que, quando o "pulso" for exibido, o original :hover
comportamento continua a funcionar?
Respostas:
7 para resposta № 1Defina a regra para :hover
com !important
portanto, quando o JavaScript definir o estilo embutido, ele será substituído.
2 para resposta № 2
Você precisará interromper a animação e remover os estilos embutidos - um exemplo para começar:
$(".elements").hover(function(){
$(this).stop().removeAttr("style")},
function(){
$(".elements").first().delay(400).css({backgroundColor: "#eeeeee"}).animate({backgroundColor: "#888888"}, 2000);
});
Alternativamente, você pode fazer o seu css assim:
li:hover {
background:red !important;
}
0 para resposta № 3
O problema parece ser a cor de plano de fundo explícita definida no elemento, que está substituindo o CSS. No final da sua animação, limpe a cor de fundo da seguinte maneira:
$(".elements").first()
.delay(400)
.css({backgroundColor: "#eeeeee"})
.animate({backgroundColor: "#888888"}, 2000, function() {
$(this).css({backgroundColor: ""});
});
Exemplo de trabalho: http://jsfiddle.net/SyqSf/