Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 10/06/2011, 09h49   #1
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
Par défaut Remplir un Array recursivement

Bonjour,

Je dois gérer dans ma page des images survollées. Le problème c'est le nombre (environ 50).

Pour ce faire j'utilise cette méthode :
Code :
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
	var tb
	tb= new Array();
	for(i=0;i<50;i++){tb[i]=new Image;}
	tb[0].src="Images/toto_srv.jpg";
	tb[1].src="Images/toto.jpg";
	tb[2].src="Images/titi_srv.jpg";
	tb[3].src="Images/titi.jpg";
	tb[4]... 
	function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
</script>
Et dans la page html :
Code :
<a href="#" onmouseover="roll(img1,0)"; onmouseout="roll(img1,1)"><img name="img1" SRC="Images/BTA.jpg"></a>
Etant donné que mes images ton toujours la même structure, à savoir :
Citation:
nomdelimage.jpg -> nomdelimage_srv.jpg
Je me suis donc dit qu'il y avait surement un moyen de remplir un ligne sur deux de mon array avec le texte contenu dans la ligne précédente pour que :
Citation:
nomdelimage_srv.jpg devienne nomdelimage.jpg
J'ai donc penser à un sytème avec modulo du type :
Code :
1
2
for (Val in tb) 
	tb[Val].src= (Val % 2 == 0)? fonction1:fonction2;
ou
Code :
1
2
3
for (Val in tb) 
	if(Val % 2 == 0) 
	{tb[Val].src=...}

Une idée de comment mettre quelque chose de ce type en place ?

Merci par avance !
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 10h10   #2
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
est ce qu'il ne faudrait pas utiliser quelque chose de ce style :
Code :
1
2
3
4
5
for (Val in tb)
if (Val % 2 != 0)
{
   tb[Val].src= tab[Val-1].substring(0,tab[Val-1].length - 4) + "_srv.jpg"
}
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h02   #3
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
Bon bah j'ai fini par trouver la solution...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
	var tb
	tb= new Array();
	for(i=0;i<2;i++){tb[i]=new Image;}
	tb[0].src="Images/toto.jpg";
 
	function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
	for(Val in tb)
		if(Val % 2 != 0){
			tb[Val].src = tb[Val-1].src.substring(0,tb[Val-1].src.length - 4).concat("_srv.jpg");}
 
</script>
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h04   #4
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
Code :
function roll(img,nb) {eval("img.src=tb["+nb+"].src");}
Pourquoi eval ???
Code :
1
2
3
function roll(img,nb) {
    img.src = tb[nb].src;
}
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h24   #5
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
Citation:
Envoyé par RomainVALERI Voir le message
Pourquoi eval ???
Copier-Coller...

Merci de me l'avoir fait remarqué...
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 11h43   #6
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
Bonjour

eval = la porte ouverte aux catastrophes par injection de codes malveillants

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var tb = [],
	dossier = "Images/",
	term1 = "_srv.jpg",
	term2 = ".jpg",
	fichiers = ["toto", "titi", "tata"],
	tbLength = 2 * fichiers.length;
 
for(var i = 0; i < tbLength; i++){
	tb[i] = new Image;
}
 
for(var i = 0, j = 0; i < tbLength; j++){
	tb[i++].src = dossier + fichiers[j] + term1;
	tb[i++].src = dossier + fichiers[j] + term2;
}
 
function roll(img,nb){
	img.src = tb[nb].src;
}
__________________

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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h45.


 
 
 
 
Partenaires

Hébergement Web