Bonjour,

J'ai une question qui me parait simple mais m'as donné pas mal de fil a retordre (et a détordre d'ailleurs)...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
for(var i=0;i < pathGlobal.length;i++){
    var monde = {};
    window['Rset'+i] = rsr.set();
    var tmpPath = pathGlobal[i];
    for(var j=0;j < tmpPath.length;j++){
        monde['path_'+i+'_'+j] = rsr.path(tmpPath[j]).attr(attr);
        window['Rset'+i].push(monde['path_'+i+'_'+j]);
    }
 
    for (var state in monde) {
        monde[state].color = Raphael.getColor();
	 (function (st, state) {
             var nomSet= eval('Rset'+i);
	     st[0].onmouseover = function () {
	          nomSet.animate({fill: "#FFF"}, 500);
		  nomSet.toFront();
	     };
	     st[0].onmouseout = function () {
	          nomSet.animate({fill: "#333",}, 500);
		  nomSet.toFront();
             };
 
	 })(monde[state], state);
    }
}
Ce code as pour but d'afficher des paths et d'highlighter l'ensemble des paths.
La solution ci dessous fonctionne mais le eval('Rset'+i) fais ramer l'affichage de ma carte.

Du coup j'ai tenté de mettre en memoire sur chaques path le nom du path parent (lignes changée en gras):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
for(var i=0;i < pathGlobal.length;i++){
				var monde = {};
				window['Rset'+i] = rsr.set();
				var tmpPath = pathGlobal[i];
				for(var j=0;j < tmpPath.length;j++){
					path = rsr.path(tmpPath[j]).attr(attr);
					path.parentSet = 'Rset'+i;
					monde['path_'+i+'_'+j] = path;
					window['Rset'+i].push(path);
				}
				for (var state in monde) {
					monde[state].color = Raphael.getColor();
					(function (st) {
						//st[0].style.cursor = "pointer";
						st[0].onmouseover = function () {
							alert(this.parentSet);
							nomSet.animate({fill: "#FFF"}, 500);
							nomSet.toFront();
						};
						st[0].onmouseout = function () {
							nomSet.animate({fill: "#333",}, 500);
							nomSet.toFront();
						};
					
					})(monde[state]);
				}
			}
Cependant, le alert me renvois undefined au sujet du this.parentSet...

Du coup je ne vois pas comment faire pour me passer du eval pour cette fonction.
Je me doute que le probleme provient d'un manque de connaissance de ma part sans trouver laquelle.
Merci d'avance pour toutes les pistes que vous pourrez proposer.