2010-07-20 2 views
2

J'ai un élément avec une classe, la classe a une largeur définie. Plus tard, je change la largeur avec $ ('# elm'). Width (100); maintenant, même plus tard, je veux revenir à la valeur d'origine. Existe-t-il un moyen d'obtenir ce que la valeur d'origine provient de la définition de classe elle-même plutôt que de stocker un tas de globals avec les valeurs dont j'ai besoin.Comment puis-je connaître la valeur d'un attribut de classe via jquery?

Merci, Justin

Répondre

1

Je suggérerais la réponse de nikc, mais vous pouvez toujours faire $('#elm').removeAttr("style"); si vous voulez effacer les styles que vos scripts ont ajoutés, et les retourner aux valeurs CSS que vous avez spécifiées. Vraiment, cependant, vous devriez laisser le style hors du code et ajouter, supprimer et basculer différentes classes.

+0

Supprimer le style fonctionne le mieux. La valeur d'origine était basée sur le pourcentage, donc obtenir la valeur exacte d'un élément nouvellement ajouté aurait été un peu plus complexe. Le seul style qui change est la largeur, donc la suppression de l'attribut l'a effacé. – Justin808

0

pas du même élément sur lequel vous avez défini explicitement la largeur par JS; mais vous pouvez créer un nouvel élément, lui donner la classe et voir quelle largeur il obtient.

Exemple:

$('#elem').width(100); 
alert($('#elem').width()); // this will return 100, no matter what width #elem was before 
$('body').add('<div class="someclass" id="elem2"></div>'); 
alert($('#elem').width()); // this may return the width as assigned in CSS to .someclass 
+0

Vous ne pouvez pas l'obtenir avec '$ ('# elem'). Width()'? – jasongetsdown

+0

Vous pouvez, mais vous obtiendrez la nouvelle, modifiée, largeur. Exemple ajouté – Piskvor

3

Pourquoi ne pas déclarer la largeur modifiée à une autre classe, que vous pouvez ensuite basculer, au lieu d'utiliser des valeurs explicites en javascript?

+0

la largeur change en fonction des éléments environnants, ce n'est pas une largeur que je peux prédéfinir. – Justin808

+0

Alors peut-être vous avez besoin d'un meilleur système de grille. –

2

Vous POUVEZ utiliser le .data() pour stocker l'original, puis restaurer les valeurs d'origine à partir de là plutôt que d'utiliser des valeurs globales - il les associe de cette façon.

Questions connexes