Chadi: setTimeout mit einem img-Objekt als Funktionsparameter

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

  1. 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

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/