Bonjour,

j'ai une question somme toute assez bête mais je suis sûr que vous avez une meilleure vue sur le JS, l'API prototype et ses possibilités que moi.

Je souhaiterai implémenter un simili-pattern 'Observateur'.

Pour ceux qui ne le connaissent pas, il s'agit d'observer un évènement et d'agir en conséquence s'il est déclenché.

Pour base, j'ai un tableau de couleurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
colors = $A('#000000', '#C0C0C0', '#FFFFFF');
Dans mon code, j'ai des tables, chacune de ces cellules utilisent des couleurs initialisées dans le tableau 'colors'.

(en rajoutant un attribut personnalisé à l'élément cellule).

Est-il possible de mettre automatiquement à jour ces cellules si l'un des couleurs du tableau color change?

Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<table>
<tr>
	<td id='cell1'>&nbsp;</td>
	<td id='cell2'>&nbsp;</td>
	<td id='cell3'>&nbsp;</td>
</tr>
</table>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
//
$('cell1').idcolor = 0;
$('cell2').idcolor = 1;
$('cell3').idcolor = 2;
 
$$('td').each(function(td) {
	td.setStyle('background-color', colors[td.idcolor]);
});
 
// Si je fais :
colors[0] = '#FFFFFF';
Sur ma dernière instruction, je voudrais donc que 'cell1' se mette automatiquement à jour.

C'est possible (avec un addEventListener) ou autre ?


Autre question, faire l'inverse, c'est possible? A savoir, si je change l'ID, la cellule repointe automatiquement vers la bonne couleur?