JAVASCRIPT Problème de position

Résolu
Bilow -  
 Bilow -
Salut tout le monde !

J'ai écrit une page en HTML/ Javascript, qui, lors d'un clic sur un lien, doit faire déplacer une balise. Mais cela ne fonctionne pas.
La première fois de l'éxécution de la fonction move(), tout fonctionne bien, mais la deuxième fois, bug à la ligne 7 : Argument non valide.
Mais pourquoi ?

Merci d'avance,
Bilow.

<html>
<head>
<title>JS Move</title>
<script type="text/javascript">
function move(balise, pixel, px_sec, facteur){
if(pixel!=0){
document.getElementById(balise).style.left=document.getElementById(balise).style.left+px_sec; // Ligne 7
pixel-=px_sec;
px_sec*=facteur;
move(balise, pixel, px_sec, facteur);
}
}
</script>
</head>
<body>
<p style="border: 1px black solid; position:absolute;" id="balise"><a href="javascript:move('balise', 200, 5, 1)">Hello world !</a></p>
</body>
</html>
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
le pb vient du fait que la valeur retournée par document.getElementById(balise).style.left

est 200px et pas 200 donc l'addition 200px+5 ne marche pas

<html>
<head>
<title>JS Move</title>
<script type="text/javascript">
function move(balise, pixel, px_sec, facteur){
if(pixel!=0){
var old_pos=document.getElementById(balise).style.left; // de la forme 200px
alert("Old pos: "+old_pos);
//recup valeur numerique
masque=new RegExp("[0-9]+","g");
if (tab=old_pos.match(masque)) {
	old_pos_num=parseInt(tab[0]);
}

var new_pos=eval(old_pos_num+px_sec);
document.getElementById(balise).style.left=new_pos; 
pixel-=px_sec;
px_sec*=facteur;move(balise, pixel, px_sec, facteur);

}
}
</script>
</head>
<body>
<p style="border: 1px black solid; position:absolute;" id="balise"><a href="javascript:move('balise', 200, 5, 1)">Hello world !</a></p>
</body>
</html>
2
Bilow
 
Salut !

Eh bien merci beaucoup ! Parfait !
Aucun bug...

Bye ;)
0