2009-07-14 8 views
0

j'ai un peu comme si cssjQuery appliquer la classe sous

#menu li 
{ 
    color:#336633; 
} 
.hover 
{ 
    color:#ffffff; 
    background-color:#336633; 
} 

J'utilise le vol stationnaire de jQuery comme si sur vol stationnaire: addClass ('vol stationnaire'); sur: removeClass ('hover');

Ceci modifie la couleur de l'arrière-plan mais pas la couleur de la police. Je suppose que c'est parce que la classe est appliquée en premier et que le comportement par défaut de Li est appliqué? Y a-t-il un moyen facile de faire ce travail? Je ne veux pas utiliser de classe pour le comportement par défaut de li, puis le supprimer, appliquer le survol et réappliquer le comportement par défaut.

Merci

Répondre

1

Dans quel ordre ces instructions apparaissent-elles dans votre CSS? Pour que le code ci-dessus fonctionne, la classe .hover DOIT apparaître après la définition #menu li. Alternativement, vous pouvez ajouter! Important à la propriété de couleur.

.hover 
{ 
    color:#ffffff !important; 
    background-color:#336633; 
} 
+0

commande avait raison. ! important fixé il vous remercie – Ori

+0

La déclaration! important ne fonctionne pas dans IE6. – Joel

+0

BTW, je pense que c'est parce que les sélecteurs d'id ont une préférence plus élevée que les sélecteurs de classe. Si vous aviez stylisé votre LI en classe, alors vous n'aurez pas besoin de! Important. – SolutionYogi

1

Votre sélecteur li est plus spécifique que votre sélecteur de classe.

Essayez:

#menu li 
{ 
    color:#336633; 
} 
#menu li.hover 
{ 
    color:#ffffff; 
    background-color:#336633; 
} 
+0

J'aime mieux votre solution. +1 – SolutionYogi

Questions connexes