Allerdings find ich es umständlich, bei jedem Aufruf das this mitzugeben. Kann man dieses nicht auch innerhalb der Funktion ermitteln?
Du könntest höchstens alternativ das Event-Objekt übergeben, damit hast du letztlich auch mehr Kontrolle in der Funktion.
Allgemein: Wenn du dutzende Event-Handler mit solchen Aufrufe hast:
meineFunc('a', this);
…
meineFunc('b', this);
…
meineFunc('c', this);
So solltest du über eine effizientere Möglichkeit nachdenken, um diese Events zu behandeln. Vielleicht kann hier Event-Delegation helfen, oder das Erzeugen dieser Funktionen mit einer weiteren Funktion:
elementA.onclick = makeFunc('a');
elementB.onclick = makeFunc('b');
elementC.onclick = makeFunc('c');
function makeFunc (type) {
return function (e) {
meineFunc(this, e);
// Oder meineFunc.call(this, e), damit this auch in meineFunc weiter auf das Element zeigt
}
}
Das ist im Grunde Function-Binding, dazu gibt es in ECMAScript 5 (d.h. in neueren Browsern) eine Helferfunktion.
Mathias