BEAUBRIUS
Messages postés120Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 8 février 2008
-
11 oct. 2007 à 22:26
BEAUBRIUS
Messages postés120Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 8 février 2008
-
12 oct. 2007 à 13:51
Bonjour
Alors je vous explique un peu mon probleme.
pour commencer , j'ai une liste d'element qui est generer avec un xml genere sur le serveur.
ma liste d'element est de la forme suivante :
valeur de l'element
avec i qui varie de 0 a n-1 ( n etant le nombre total d'element )
mon but est que lorsque je click sur un element il se met en etant selectionner (class="select" )
par defaut l'element 0 est selectionner
et que si il y a un element qui etait deja selectionner il soit deselectionner (class="")
donc j'ai fait un evenement onclick sur chaque div qui contien les element
l'evenement apelle une fonction selected( element a selectionner , ensien element selectionner , nombre d'element )
est c'est la que commence les probleme ...
function selected(i,select,taille){
// je selection et deselection les element
document.getElementById("select"+select).className = "";
document.getElementById("select"+i).className = "select";
//alert(i);
var j;
// je change les valeur passer car l'element selectioner a changer
for(j=0;j<taille;j++){
document.getElementById("select"+j).onclick= function(){ selected(j,i,taille);};
}
}
donc lorsque je click sur un element ça marche bien , le changement a bien lieu.
par contre quand je click a nouveau il y a un probleme.
et j'ai remarquer que le probleme vien lors du changement de l'evenement onclick.
si je decomente alert(i); ça m'affiche la ligne sur la quel on a clicker.
la premier foi ça marche bien , mais la deuxieme foi il me dit taille quelque soit la ligne sur la quel je click.
exemple :
*[bonbon]
[gateau]
[fruit]
je click sur gateau :
j'ai une alert avec 1
[bonbon]
*[gateau]
[fruit]
je click sur bonbon
j'ai une alert avec 3
erreur imposible de selectionner la ligne 3 (elle n'existe pas ... )
je pense que dans le changement d'evenement j est passé par reference et non par valeur
car a la fin de l'execution de la fonction j vaut taille (vu qu'on est sortie de la boucle for)
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 12 oct. 2007 à 08:49
Bonjour,
tes fonctions sont mises en dynamique je suppose ?
( sinon on aimerait voir l'appel de la function selected
quoique j'aimerais voir comment c'est fait, si
ma réponse ne convient pas ! )
zéro
un
deux
<script type="text/javascript">
var n=0,tmp;
while ( document.getElementById("elem"+n) )
{ tmp=document.getElementById("elem"+n);
tmp.num=n;
tmp.onclick=function()
{ alert(this.id+"\n"+this.num+"\n"+n); }
n++;
}
</script>
on voit que this.num varie de 0 à 2, mais que n est toujours = 3