eventhandler mit parameter dynamisch hinzufügen
FraFu
- javascript
Hallo!
Im Prinzip ist meine Frage eine Zusatzfrage zu einem Thread der schon im Archiv ist.
Folgende Problemstellung:
Ich möchte, dem Element element den Eventhandler zuweisen der in der Variablen meineFunktion steht. Soweit kein Problem. Dieser Funktion möchte ich aber den Parameter parameter übergeben. Wie mache ich das?
In der Form in der ich es hier poste, wird die Funktion meineFunktion sofort aufgerufen.
var fname="meineFunktion";
var parmeter="meinwert";
element=document.gelElementById("meinElement");
element.onclick=window[fname](parameter);
Ich habe schon verschiedenste Versionen versucht aber ich habe bisher keine richtige gefunden.
mfg
frafu
In der Form in der ich es hier poste, wird die Funktion meineFunktion sofort aufgerufen.
var fname="meineFunktion";
var parmeter="meinwert";element=document.gelElementById("meinElement");
element.onclick=windowfname;
`element.onclick = function() { window[fname](parameter); };`{:.language-javascript}
Aber ich würde versuchen sowas zu vermeiden wenn es geht. Wieso ist die Funktion dynamisch und wozu der Parameter? Ich kann mir eine solche Situation nicht vorstellen.
Struppi.
--
[Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)
Hallo!
Danke für deine Hilfe! Eigentlich logisch. Hätte ich selber auch draufkommen können.
Aber ich würde versuchen sowas zu vermeiden wenn es geht. Wieso ist die Funktion dynamisch und wozu der Parameter? Ich kann mir eine solche Situation nicht vorstellen.
Versuch der Erklärung.
Es handelt sich um eine Formular in das man 0-N Werte eingeben kann und deren Reihenfolge auch noch wichtig ist. Beim ersten mal anlegen werden mal Forumlarfelder für 3 Werte angezeigt:
_____ ist eine Eingabefeld
[...] ist ein Image mit einem onclick Eventhandler
Forumlar:
Wert1: _____ [löschen] [eins runterschieben] [eins raufschieben]
Wert2: _____ [löschen] [eins runterschieben] [eins raufschieben]
Wert3: _____ [löschen] [eins runterschieben] [eins raufschieben]
[neuen Wert hinzufügen]
Wenn ich jezt auf [neuen Wert hinzufügen] klicke wird so eine neue Zeile angelegt. Diese 3 Images (löschen, runter- und raufschieben) werden in das DOM per JS eingefügt und es müssen eben auch die onclick Eventhandler dynisch gesetzt werden. Die Funktion die dahintersteckt erwartet eine ID, damit die Funktion weiß, welche Reihe gelöscht oder verschoben werden soll.
Natürlich könnte ich auf den Parameter verzichten und stattdessen über this abfragen in welcher Reihe auf eines der Images geklickt wurde. Das wäre aber umständlicher.
In Wirklichkeit ist das ganze wesentlich komplexer als hier beschrieben, aber vom Prinzip her kommt es schon hin.
mfg
frafu