marc plogas: übergabe von variablen an mit settimeout ausgeführte funktion

Beitrag lesen

hallo und frohe weihnacht miteinander:

seit mehreren tagen versuche ich folgender funktion eine timeout-funktionalität beizubringen. hab schon hier im forum gestöbert und ähnliche fälle gefunden, aber die entsprechende lösung hilft auch bei mir nicht.
und aus diversen setTimeout Manuals werde ich in diesem speziellen fall auch nicht schlau. hier mal das script:

<script language="javascript">
/*var curr_XPos, curr_YPos, end_XPos, end_YPos, scr_Speed;*/
// mit globalen variablen geht es auch nicht, war ja im prinzip klar...

function accessStyle(objectID)
{
if (document.getElementById)
 {
 return document.getElementById(objectID).style;
 }
else
{
 alert("browser momentan nicht unterstuetzt.\nExiting.");
 return 0;
}
}

function moveLayer(objectID,end_XPos,end_YPos,scr_Speed)
//objectID = layerID; end_XPos = Ziel-X-Wert; end_YPos = Ziel-Y-Wert; scr_Speed = Scrollgeschwindigkeit;
{
//variablen
/*iW = parseInt(document.body.clientWidth);
iH = parseInt(document.body.clientHeight);*/
curr_XPos = parseInt(accessStyle(objectID).left);
curr_YPos = parseInt(accessStyle(objectID).top);
var test = 0;

//schleife um a)herauszufinden in welche richtung der layer bewegt werden soll und b) um den layer dann halt auch zu bewegen
while ((end_XPos != curr_XPos)||(end_YPos != curr_YPos))
 {
 XDiff = end_XPos - curr_XPos;
 YDiff = end_YPos - curr_YPos;
  if (XDiff > 0)
        {
   accessStyle(objectID).left = curr_XPos++;
  }
  else if (XDiff < 0)
  {
   accessStyle(objectID).left = curr_XPos--;
  }
  if (YDiff > 0)
        {
   accessStyle(objectID).top = curr_YPos++;
  }
  else if (YDiff < 0)
  {
   accessStyle(objectID).top = curr_YPos--;
  }

}
 test = setTimeout('movelayer('+objectID+','+end_XPos+','+end_YPos+')',scr_speed);
 alert(test); //warum gibt test hier riesige zahlen aus??
}
</script>

das ganze wird dann über ein onclick event auf dem layer aufgerufen:
<div id="testlayer" style="position: absolute; top: 0px; left: 0px;"><a href="#" onclick="moveLayer('testlayer',100,100,1000)">blabla</a></div>

der layer bewegt sich auch zu den gewollten koordinaten, nur mit dem timeout gibt es große problem. warum weiss ich beim besten willen nicht.

danke im voraus

marc plogas