Java Reference
In-Depth Information
Listing 9.1■ Der Zugrif auf eine Eigenschat
document.onclick=meinefunktion;
In diesem Beispiel sehen Sie den Zugrif auf eine Eigenschat onclick eines Objekts mit
Namen document . Streng formal ist das nichts Neues. Aber dabei habe ich Ihnen einen
JavaScript-Eventhandler „untergejubelt“. Denn nichts anderes ist der Einsatz eines solchen
Eventhandlers unter JavaScript selbst - eine Zuweisung einer Funktionsreferenz zu einer
passenden Eigenschat des Objekts, bei dem das Auslösen des Ereignisses überwacht wer-
den soll. Der Name der Eigenschat ist äquivalent zum Bezeichner des HTML-Ereignisattri-
buts, wenn beide vorhanden sind. Alternativ können Sie in so einer Situation auch eine
anonyme Funktion verwenden. Beispiel:
Listing 9.2■ Die Verwendung einer anonymen Funktion
document.onclick=function() { ... }
Im Fall einer anonymen Funktion können Sie bei der aufgerufenen Funktion auch Parame-
ter verwenden. Wobei wir insbesondere für den Fall noch ins Detail gehen müssen, wenn
der anonymen Funktion selbst Parameter übergeben werden sollen. Gerade bei Funktio-
nen, die auf Ereignisse reagieren, wird auch ot mit inneren Funktionen (Closures) gearbei-
tet.
9.1.1■(X)HTML- versus JavaScript-Eventhandler
Wenn nun Eventhandler sowohl in (X)HTML als auch in JavaScript angegeben werden kön-
nen, stellt sich eine Frage - welche Variante ist vorzuziehen? Die Antwort ist eindeutig -
nur mit JavaScript-Eventhandlern können Sie eine saubere Trennung von Struktur und
Funktionalität gewährleisten. Diese Begründung ist das (!) Killerargument schlechthin für
den Einsatz von JavaScript-Eventhandlern  - und bekanntlich auch externen JavaScript-
Dateien. Die Vermischung von JavaScript-Aufrufen direkt in Tags sabotiert diese Trennung.
JavaScript-Eventhandler können sowohl in einen internen Skriptcontainer als auch in
externe JavaScript-Dateien ausgelagert werden.
Dazu kommt noch, dass für jeden (X)HTML-Eventhandler ein JavaScript-Gegenstück exis-
tiert. Es gibt jedoch mehrere Ereignisse, für die kein (X)HTML-Eventhandler zur Verfügung
steht. Hier haben Sie gar keine andere Wahl, als JavaScript-Eventhandler zu verwenden.
Mit JavaScript-Eventhandlern können Sie auch programmieren. Sie können diese etwa in
Verbindung mit Schleifen oder Objektfeldern kompakt mehreren Elementen zuweisen und
die Verfügbarkeit situationsbedingt steuern und Sie haben dabei Zugrif auf ein Ereignis-
objekt mit speziischen Informationen zu dem ausgelösten Ereignis.
Ich rate also dringend dazu, dass Sie in der Praxis in Ihren Webapplikationen auf (X)HTML-
Eventhandler vollkommen verzichten und Ereignisbehandlung nur noch mit JavaScript vor-
nehmen.
 
Search WWH ::




Custom Search