Webblob: JavaScript Event Handler

Beitrag lesen

Hallo Jutta,

ok soweit bin ich nun auch wieder ich habe einen Funktionsaufruf der so aussieht

onmouseout="ChangeCol(this)"

'this' bezieht sich immer auf das aktuelle Objekt (in diesem Fall also die Tebellenzeile, zu der das onmouseout gehört).

Und das ist meine Funktion:

function ChangeCol()
    {
    this.style.backgroundColor=Silver";
    }

Nur kommt nun folgender Fehler: Objekt erwartet.

Ja was ist denn jetzt das aktuelle Objekt (dessen BG-Color geändert werden soll)?
Das Script weiß hier nicht, auf welches Objekt es sich beziehen soll - daher die Fehlermeldung.

Irgendwas ist mit dieser Zeile falsch?
this.style.backgroundColor=Silver";

an sich nicht (bis auf die Anführungsstriche 'Silver';), wenn es ein eindeutiges aktuelles Objekt gibt, welches ein Attribut Background Color hat.

Da du aus jeder Tabelle(nzeile) heraus die selbe Funktion aufrufst, solltest du der Funktion einen eindeutigen Wert mitliefern (damit du in der Funktion weißt, welche Tabelle(nzeile) denn jetzt die Funktion aufgerufen hat).

Dazu kannst du bspw. den entsprechenden <tr> Tags (die mit dem Funktionsaufruf onmouseout="ChangeCol(this)" ) jeweils eine ID geben. <tr id="tab1" ...>

Der Funktionsaufruf sollte dann wie folgt aussehen: onmouseout="ChangeCol(this.id)"

Die Funktion ganz leicht verändern:
   function ChangeCol(aufrufendeTabelle)
   {
    document.getElementById(aufrufendeTabelle).style.backgroundColor='Silver';
   }

Den Rest findest du mit Hilfe von Selfhtml jetzt aber bestimmt selbst raus - Viel Erfolg!

Gruß Gunther