Ajout d'ID à des objets raphael

J'ai une assez grande carte composée de chemins Raphael qui essayent de rendre accessibles à certains scripts jqqq ajax pour être peuplés. J'ai essayé d'ajouter un identifiant ou n'importe quoi pour le rendre accessible de jquery de manière organisée.

Comme je suis nouveau chez Raphaël, je ne peux pas trouver un bon moyen d'atteindre cet objectif. J'ai essayé d'utiliser .data () pour ajouter une ID pour chaque point avec say "seat_1", "seat_2" et ainsi de suite, mais a échoué jusqu'ici.

Comment pourrais-je organiser ce code afin que je puisse le manipuler en bouclant? Je me rends compte que c'est une question assez ouverte, mais toute suggestion est très appréciée

Démonstration ici: http://www.sam-sys.in/demo/pushparaj/ticketreservation/?page_id=203

var path_gs = rsr.path("M5.834,698.336c-3.217,0-5.833,2.615-5.833,5.831 c0,3.215,2.616,5.833,5.833,5.833c3.219,0,5.835-2.618,5.835-5.833C11.669,700.951,9.053,698.336,5.834,698.336"); path_gs.attr({"clip-path": 'url(#SVGID_2_)',fill: '#777675',parent: 'group_a','stroke-width': '0','stroke-opacity': '1'}).data('id', 'path_gs'); 

Qui génère

 <path style="stroke-opacity: 1; " fill="#008000" stroke="#000000" d="M5.834,698.336C2.6169999999999995,698.336,0.0009999999999994458,700.951,0.0009999999999994458,704.167C0.0009999999999994458,707.3820000000001,2.6169999999999995,710,5.834,710C9.052999999999999,710,11.669,707.382,11.669,704.167C11.669,700.951,9.053,698.336,5.834,698.336" stroke-width="0" stroke-opacity="1"></path> 

Eh bien, la façon dont je le fais est la suivante. D'abord, j'écris tous les chemins d'un objet, par exemple:

 var paths = { path1: 'the paths coordinates', path2: 'the paths coordinates', path3: 'the paths coordinates', } 

Ensuite, il suffit de boucler tous les chemins, de définir les coordonnées de chaque chemin et de leur donner une ID (c'est une ID de Raphael interne):

 for(path in paths){ var newpath = paper.path(paths[path]); newpath.attr({options}) newpath.id = path; } 

Maintenant, si vous voulez obtenir l'un de ces éléments, vous pouvez utiliser la prochaine fonction Raphael:

 var thisPath = paper.getById('path1'); 

De cette façon, vous pouvez utiliser le chemin sur l'une des méthodes Raphael. Donc, si vous devez obtenir le nœud dans le dôme, vous pouvez effectuer les opérations suivantes:

 var node = thisPath.node 

Mais si vous devez animer le chemin, utilisez mieux la méthode animée de Raphael, ou si vous devez modifier la méthode Attr.

 thisPath.animate(.....) 

Si vous devez appliquer un changement à tous les chemins, vous pouvez utiliser:

 paper.forEach(function(thisArg)) 

Vous devez passer la fonction à exécuter sur chaque élément et thisArg renvoie l'élément à chaque itération

Et peut-être souhaitez-vous jeter un oeil aux ensembles de Raphael qui peuvent être utiles pour utiliser des méthodes sur des groupes d'éléments. Si vous avez besoin d'aide pour utiliser ces fonctionnalités, faites-le moi savoir et je ferai de mon mieux pour vous aider. Au revoir!

Vous pouvez simplement les pousser vers un tableau:

 var pathArray = new Array(); var path_gs = rsr.path("path coords"); pathArray.push(path_gs); 

Ensuite, faites une boucle via PathArray.

Une autre option est de les regrouper en ensembles .