molily: wie "this" in einer funktion finden?

Beitrag lesen

Hallo,

Du hast mich zwar richtig verstanden, aber irgendwie funzt das trotzdem nicht. Der Skript Debugger sagt "missing formal parameter" bei "function doHoverCSS(this) {".

Du kannst einen Parameter nicht this nennen.

Noch einmal zur Verdeutlichung:

Wenn du eine Handler-Funktion in einem HTML-Attrbut aufrufst, musst du der Handler-Funktion dort »this« als Parameter übergeben, wenn du dort auf das Element zugreifen willst:

<p onmouseover="handler(this)">Text</p>

In der Funktion nutzt du dann den Parameter, der auf das Element verweist:

function handler (element) {  
   element.className = "klasse";  
}

»this« kannst du in dem Fall direkt nicht nutzen, das Angeben in der Parameterliste nützt wie gesagt nichts. (Du könntest this zwar einsetzen, es würde aber auf window verweisen.)

Wenn du den Event-Handler über JavaScript registrierst, also nicht mit Attributen im HTML-Code arbeitest, dann verhält sich die Sache anders:

<p id="absatz">Text</p>

document.getElementById("absatz").onmouseover = handler;
Oder:
document.getElementById("absatz").addEventListener("mouseover", handler, false);

Die Handler-Funktion bekommt dann (außer im IE) als ersten Parameter das Event-Objekt. In dem Fall kannst du mit »this« direkt auf das Element zugreifen, dessen Event-Handler ausgeführt wird:

function handler (ev) {  
   this.className = "klasse";  
}

Mathias