CSS Pseudo-classes avec jQuery

J'ai juste appris un peu de jQuery, et j'essaie de l'utiliser pour un simple changement de couleur de l'effet. Disons que j'ai deux <div>s, #foo et #bar. #foo a beaucoup d'URLs, et a le code CSS suivant est défini:

#foo a {color: blue; border-bottom: 1px dashed blue}
#foo a:hover {color: black; border-bottom: 1px solid black}

maintenant, je voudrais changer la couleur des liens (a:link) #foo lorsque l'utilisateur clique sur #bar, mais garder le a:hover couleur intacte, alors j'écris ma fonction comme ceci:

//...
$("#bar").click(function () {
  $("#foo a").css("color", "red");
});
//...

Le problème est que, bien que cette fonction ne changera tous les liens en rouge, le a:hover couleur est perdue, c'est à dire lorsqu'un utilisateur déplace le curseur de la souris sur les liens, ils vont rester rouge, noircit pas comme je l'espérais.

Depuis que je vois ce que jQuery n'est mis de style en ligne pour <a>s dans #foo, en fait <a style="color:red;" href="...">, je suppose que cela va écraser les :hover pseudo-classe. Comme le style en ligne attr pour les pseudo-classe n'a pas été mis en œuvre par une personne autant que je sache, je doute si je peux obtenir mon effet destiné à tous les...

encore, est-il une des solutions qui ne nécessitent pas de m'écrire quelque chose comme

$("#foo a").hover(
    function(){ $(this).css("color", "black");},
    function(){ $(this).css("color", "blue");}
)

?

grâce.

Cette question devrait vraiment méritent une meilleure réponse que le titre et a accepté de répondre, ne correspondent pas.

OriginalL'auteur Metaphox | 2009-01-28