Hallo,
document.getElementById("id1").onclick = funktion1;
function funktion1() {funktion_allgemein("string1");}
document.getElementById("id2").onclick = funktion2;
function funktion2() {funktion_allgemein("string2");}
>
> usw. -- ich habe auf diese Weise etwa 20 verschiedenen Links ebensoviele Funktionen zugewiesen.
Das ist eine sehr komplexe Lösung, das ließe sich wahrscheinlich generalisieren und damit vereinfachen. Dann hast du das Probleme der Variablenübergabe gar nicht.
> Die verschachtelten Funktionen benötige ich, um der inneren Funktion (die immer dieselbe ist) einen jeweils unterschiedlichen Übergabewert mitgeben zu könnnen.
Das sieht so aus, als bräuchtest du weder 20 Event-Handler zu registrieren noch 20 Funktionen zu erzeugen. Das Schema wiederholt sich anscheinend gleichförmig. Gemäß der Regel »Don’t repeat yourself« sollte man diesen Code optimieren. Beispielsweise:
- Gib allen fraglichen Elementen eine Klasse
- Überwache alle click-Ereignisse bei einem gemeinsamen Elternelement, z.B. body. Siehe [Event Delegation](http://molily.de/js/event-handling-effizient.html).
- Prüfe in diesem globalen Handler, ob das geklickte Element die Klasse besitzt. Wenn das nicht der Fall ist, breche ab.
- Der unterschiedlichen Übergabewert ergibt sich bestenfalls aus dem Kontext, z.B. entnimmst du ihn dem Element. Das kann wie oben im Beispiel die ID sein, ein [data-Attribut](http://html5doctor.com/html5-custom-data-attributes/), der Textinhalt, oder du suchst die benötigten Daten in einem dafür vorgesehenen JavaScript-Objekt.
Es gibt noch einige andere Lösungsmöglichkeiten, die ich hier nicht genannt habe. Am besten zeigst du uns einmal ein Beispiel mit tatsächlichen Inhalten.
Im Allgemeinen empfehle ich das [Kapitel Event-Handling meiner JavaScript-Dokumentation](http://molily.de/js/).
Grüße,
Mathias