11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

je suis débutant dans le javascript (mais connait bien ActionScript), j'aurais besoin d'aide pour récupérer des variables dans un switch case.

Je m'explique : je m'y prend peut-être de la mauvaise façon mais j'ai fait ce code (JS) en externe pour identifier certaines images dont une est ma zone qui réagit à la souris, les autres sont autour de ce "bouton" elle vont réagir de la même façon sans être des zones associé à des évènements de la souris, donc je veux récupérer ces images dans des variables pour les utiliser dans une autre fonction et je voulais essayer avec switch case, méthode que je n'utilise pas souvent.

voici le code pour mieux comprendre :


window.onload = btnStatesInit;
var btnImg = "";
var btnImgTop = "";
var btnImgDown = "";
var btnImgLeft = "";
var btnImgRight = "";

function btnStatesInit() {
	for (var i=0; i<document.images.length; i++) {
		var imgObj = document.images i; // le i est dans des brackets carrés (interpréter comme italique dans cet éditeur texte)
		switch (imgObj.id) {
			case ("btn_enter"): 
				btnImg = imgObj;
				break;
			case ("btn_enter_around_top"): 
				btnImgTop = imgObj;
				break;
			case ("btn_enter_around_down"): 
				btnImgDown = imgObj;
				break;
			case ("btn_enter_around_left"): 
				btnImgLeft = imgObj;
				break;
			case ("btn_enter_around_right"): 
				btnImgRight = imgObj;
				break;
		}
		if (btnImg,btnImgTop,btnImgDown,btnImgLeft,btnImgRight) {
			alert(btnImg.id,btnImgTop.id,btnImgDown.id,btnImgLeft.id,btnImgRight.id);
			setupBtnStates(btnImg,btnImgTop,btnImgDown,btnImgLeft,btnImgRight);
		}
	}
}


L'alert donne btn_enter comme id de toutes mes variables.

Pour l'instant je récupère la valeur de la première image (btn_enter) dans toutes mes variables, je comprend que le 1er cas attribut le bon élément image à la 1ere variable mais ensuite, les autres récupèrent cette même 1ère variables.

Comment puis-je récupérer chaque élément i dans mes différentes variables?

Merci d'avance à ceux qui se pencheront sur mon cas, je paierais au suivant bien sûr. Smiley biggrin
Modifié par Psycho (03 Apr 2009 - 21:06)
Salut,

a écrit :
L'alert donne btn_enter comme id de toutes mes variables.

alert() n'accepte à ma connaissance qu'un argument. Là tu lui en donnes plusieurs et je pense qu'il ignore tout simplement les suivants. Donc :
alert(btnImg.id,btnImgTop.id,btnImgDown.id,btnImgLeft.id,btnImgRight.id);

est équivalent à :
alert(btnImg.id);

Voilà, je pense, pourquoi tu as l'impression que seule btnImg existe...

Parenthèse : le if avec des virgules, c'est pareil, c'est bizarre. Ça marche visiblement, mais je t'avoue que je ne sais pas pourquoi ni comment... Je suppose que le comportement des virgules est identique à celui des &&, mais bon, j'ai jamais vu ça dans du code JS...