Salut, j'ai un problème assez embetant avec ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
function EditInPlace() {
	var v=getElementsBySelector("span.editinplace");
	var l=v.length;
	for(i=0;i<l;i++)
	{
	    var id_span = v[i].id;
	    addEvent(v[i],'click',function() { ShowEditInPlace(id_span); });
	}
}
Qui va attacher un évènement clic sur tous les <span class=editinplace> avec le même id à chaque fois, le dernier de mon tableau.

Si j'ai par exemple:
<span id=s1 class=editinplace>Test</span>
<span id=s2 class=editinplace>Test</span>
<span id=s3 class=editinplace>Test</span>

Chaque clic sur n'importe lequel de ces 3 spans appelera ShowEditInPlace(s3).
Le comportement correct serait d'appeler ShowEditInPlace avec en paramètre le bon id pour chaque span.

Si je fais en dur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
addEvent(v[0],'click',function() { ShowEditInPlace(v[0].id); });
addEvent(v[1],'click',function() { ShowEditInPlace(v[1].id); });
addEvent(v[2],'click',function() { ShowEditInPlace(v[2].id); });
Après le for, en enlevant la ligne addEvent du for, ShowEditInPlace aura à chaque fois le bon paramètre si je clic sur un des spans = c'est le comportement que je voudrais avoir.

Une idée de pourquoi celà ne marche pas lorsque je le fais dans le for?