molily: onlick element via js eine Variable zuweisen

Beitrag lesen

Hallo,

Nur wie kann ich jedem Element bei der onclick-Funktion eine andere Variable vergeben (sodass das erste Element beim onclick auf openTabGroup(0), das zweite auf 1 usw. kommt)?

das ist hier eine häufig gestellte Frage. Kürzliche Antworten:

http://forum.de.selfhtml.org/archiv/2014/1/t216075/
http://forum.de.selfhtml.org/archiv/2014/1/t216168/
http://forum.de.selfhtml.org/archiv/2014/2/t216570/

(Forumssuche nach »schleife function javascript« bzw. »for function javascript«)

Die meisten Lösungen laufen darauf hinaus, eine Funktion zu erzeugen, die das korrekte i in eine Closure einschließt. Partial Application (partielle Anwendung) ist das übergreifende funktionale Konzept: Man erzeugt eine neue Funktion, die mit einem Parameter vorbelegt ist.

Das geht in neueren Browsern z.B. mit Function.prototype.bind:

div.onclick = openTabGroup.bind(undefined, i);

Ich bevorzuge die sprechende Lösung mit _.partial aus der Bibliothek Underscore bzw. Lodash:

div.onclick = _.partial(openTab, i);

Sinnvoller wäre übrigens, addEventListener zum Registrieren des Event-Handlers zu verwenden. onclick ist traditionelles Event-Handling.

Mathias