Hallo,
Ich möchte aber möglichst eine Klickverarbeitung für mehrere Elemente,
so dass ich quasi den Wert "document.getElementById("interaktiv")" und eine Variable für den Text "Huhu ..." an die Funktion klickverarbeitung
übergeben müsste
In dem Fall könntest zu natürlich fünfzig weitere zusätzliche Funktionen anlegen. Einfacher geht es aber mit anonymen Funktionen. Die werden einfach notiert und direkt in onclick gespeichert, nirgends sonst:
document.getElementById("interaktiv1").onclick = function () {
textHinzufügen(this, "Text 1");
};
document.getElementById("interaktiv2").onclick = function () {
textHinzufügen(this, "Text 2");
};
usw.
»this« bezieht sich hier auf das Element, bei dessen Event-Handler aufgerufen wurde, also das mit der ID interaktiv1 bzw. interaktiv2. Das spart einem, nochmal getElementById aufzurufen.
Andere Möglichkeit: Man legt nicht immer neue Funktionen an, sondern nutzt nur eine Funktion und speichert die benltigte Information woanders. Zum Beispiel als Eigenschaft des Elementobjektes. Auf diese Eigenschaft kann man ebenfalls über this zugreifen:
var element ;
element = document.getElementById("interaktiv1");
element.onclick = klickverarbeitung;
element.neuerText = "Text 1";
element = document.getElementById("interaktiv2");
element.onclick = klickverarbeitung;
element.neuerText = "Text 2";
usw.
function klickverarbeitung () {
window.alert(this.neuerText);
}
(Das Registrieren des Handlers und das speichern des Textes könnte man natürlich in eine Funktion auslagern. Das spart Tipparbeit und macht das script übersichtlicher.)
Mathias