Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 18h15   #1
Invité de passage
 
Homme Anthony
Indépendant en informatique
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Anthony
Localisation : France, Orne (Basse Normandie)

Informations professionnelles :
Activité : Indépendant en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Tester de classe et mettre à jour un attribut avec jquery

Bonjour à tous,

Je suis nouveau sur ce forum et j'ai peu d'expérience en développement en général. J'arrive à faire les choses mais pas toujours dans les règles de l'art.

En l'occurrence, j'ai un code qui teste les classes de mon body, et si il y trouve une certaine classe, je veux qu'il m'actualise l'attribut src d'une balise image. Mon code ressemble à ça pour le moment (attention les yeux !!)

Code :
1
2
3
if($('body').hasClass('section-sports')){$('.rub').attr('src', $('.rub').attr('src').replace('.png', 'bouton-sports.png'));}
if($('body').hasClass('section-solidarite')){$('.rub').attr('src', $('.rub').attr('src').replace('.png', 'bouton-solidarite.png'));}
if($('body').hasClass('section-citoyennete')){$('.rub').attr('src', $('.rub').attr('src').replace('.png', 'bouton-citoyennete.png'));}
Ça marche, mais comment simplifier le tout, pour que ça soit plus respectueux du langage ?

Merci d'avance à ceux qui pourront m'aiguiller vers une solution !!

Anthony
openpixel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 21h40   #2
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Le code est bon, mais on peut l'optimiser.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var jObjBody = $('body'), // l'élément "body"
	jObjRub = $('img.rub'), // tous les éléments "img" ayant la classe "rub"
	replaceRub = function(newSrc){ // replace ".png" by src
		jObjRub.attr('src', jObjRub.attr('src').replace('.png', newSrc));
	};
 
// je suppose qu'il ne peut y avoir qu'une seule de ces classes en même temps, donc "else if"
 
if ( jObjBody.hasClass('section-sports') ){
	replaceRub('bouton-sports.png');
} else if ( jObjBody.hasClass('section-solidarite') ){
	replaceRub('bouton-solidarite.png');
} else if ( jObjBody.hasClass('section-citoyennete') ){
	replaceRub('bouton-citoyennete.png');
}
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2011, 10h56   #3
Invité de passage
 
Homme Anthony
Indépendant en informatique
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Anthony
Localisation : France, Orne (Basse Normandie)

Informations professionnelles :
Activité : Indépendant en informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
Bonjour Daniel, merci d'avoir pris le temps de me répondre. J'ai testé ton code et il fonctionne très bien. Je souhaiterais l'adapter encore un peu plus à mes contraintes mais ce n'est pas si simple.

J'ai tout placé dans une fonction dans un fichier .js à part et ça marche, c'est parfait !!

merci encore.

Anthony
openpixel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h20.


 
 
 
 
Partenaires

Hébergement Web