setTimeout mit einem img-Objekt als Funktionsparameter
Chadi
- dhtml
hey,
folgendes Problem:
mit onMouseOver wird die Funktion FunktionA aufgerufen.
zuvor habe ich das Objekt "HighlightButton" definiert:
HighlightButton1 = new Image();
HighlightButton1.src = "button_rollover.gif";
onMouseOver = "FuntkionA('StringParameter',HighlightButton)"
function FunktionA(Param1, Param2) {
setTimeout('FunktionB("'+Param1+'",'+Param2+')', 500);
}
function FunktionB(Param1, Param2) {
alert(Param2.src);
}
Das Problem ist dass das SetTimeout in FunktionA den Param2 nicht als img-Objekt an FuntkionB weitergibt. Denn dann würde nämlich durch den 'alert' in FunktionB der Pfad vom img-Objekt ausgegeben werden, in dem Fall "button_rollover.gif".
Das liegt auf jeden Fall an der SetTimeout-Syntax, denn wenn ich FunktionB ohne SetTimeout aufrufe, dann wird das img-Objekt auch ordentlich weitergegeben und der Pfad auch richtig ausgegeben.
Eine Lösungsmöglichkeit wäre beim Aufruf von FunktionA durch 'onMouseOver' den zweiten Parameter(HighlightButton) ebenfalls in einfache Anführungsstriche zu setzen, also folgendermaßen:
onMouseOver = "FuntkionA('StringParameter','HighlightButton')"
Jedoch wird auf dieser Weise das img-Objekt als String übergeben, um dann durch setTimeout wieder in ein img-Objekt umgewandelt zu werden. Sehr seltsam, und ziemlich unsauber. Ausserdem kann ich den Parameter 'nur noch' in setTimeout benutzen.
Kann mir jemand sagen wie ich setTimeout dazubringe das img-Objekt bei der Übergabe nicht zu verschandeln...
Ich danke schon mal im voraus.
Gruß
Chadi
Hallo,
Kann mir jemand sagen wie ich setTimeout dazubringe das img-Objekt bei der Übergabe nicht zu verschandeln...
Vielleicht hilft dieser Ansatz prinzipiell weiter:
function FunktionA(Param1, Param2) {
setTimeout(function(){FunktionB(Param1, Param2)}, 500);
}
function FunktionB(Param1, Param2) {
alert("Param1: "+Param1+"\nParam2: "+Param2);
}
FunktionA('bla','blub');
alert()-Ergebnis:
-----------------
Param1: bla
Param2: blub
MfG, Thomas