2010-07-28 3 views
4

Est-il possible de modifier la classe css avec jQuery? Par exemple, si j'ai cette classe définie:jQuery, modification de la classe css elle-même

.my-class{ 
    right:10px;  
} 

et maintenant je veux changer pour

.my-class{ 
    right:20px;  
} 

sans avoir à sélectionner tous les éléments de cette classe avec $ (« myClass. »). La raison pour laquelle je veux faire ceci est que j'ajoute beaucoup d'éléments à l'exécution dans js et ce serait bien d'échanger la définition de classe à l'avance. .myClass est défini dans le fichier css, sinon je suppose que j'aurais pu changer sa définition avec jsf/jstl s'il avait été sur la page.

+0

Dupliquer: http://stackoverflow.com/questions/622122/how-can--change-the-css-class-rules-using- jquery – spinon

Répondre

3

Techniquement, vous pouvez modifier les feuilles de style avec Javascript en utilisant les document.styleSheets objet, mais vous pourriez trouver beaucoup plus de travail que cela vaut la peine. Lisez cet article pour avoir une idée de ce qu'est un désordre: http://www.quirksmode.org/dom/changess.html

+0

Yuk, tu as raison, c'est une approche horrible. – Elijah

+0

Oui, c'est dommage que ce soit un tel gâchis. Cela pourrait être utile. – edeverett

1

Si je faisais cela, je le ferais avec des styles en ligne.

<div style="right:20px"><!-- blank --></div> 

$('div').css('right','10px'); 

L'autre option est d'avoir deux classes et basculer entre eux en utilisant toggleClass()

<div class="right10"><!-- blank --></div> 

$('div').toggleClass('right20'); 
+0

Je dirais la même chose. Si le style est trop variable, j'irais en ligne, s'il y a un certain nombre d'options, je pourrais éventuellement les définir et les basculer. –

+0

Il n'y a que deux variantes de la classe, ce qui la rend plus simple. Mais je préférerais ne pas interroger le dom pour ces éléments. La page que je rends est énorme. – Elijah

+0

Vos sélecteurs peuvent être rendus plus spécifiques pour accélérer les choses. –

Questions connexes