Antwort an „Nico R.“ verfassen

Hallo Felix,

Mir scheint das der identische Link zu sein. Eine zweite Variante konnte ich nicht finden. Die vorliegende fügt und entfernt jedenfalls fröhlich ihre EventListener hin und her.

*kreisch* Ja, wie blöd. Hier der richtige Link: https://fsv-optik.de/tests/dialog_fetch_neu.html

  1. <tbody>-Elemente sind keine interaktiven Elemente. Du solltest sie auch nicht mit einem EventListener interaktiv machen. Dafür gibt es besser geeignete Elemente wie z.B. das <button>-Element.

Hm, ja. Klingt erstmal logsich. Aber wie sähe das in der Praxis aus? In jeder bearbeitbaren td ein button… Und worauf registriere ich dann den EventListener? Ich habe hier gelernt, es ist bessere Praxis, an einem übergeordneten Element zu lauschen, statt auf jedem einzelnen (button)-Element einen Handler zu registrieren.

  1. Wenn Du eine Kapselfunktion benötigst, warum genügt Dir dann nicht diejenige (anonyme) Funktion, die mit dem DOMContentLoaded-Ereignis ausgeführt wird? Diese doppelte Kapselung nur um der Kapselung willen erscheint mir Unsinn zu sein.

Das stimmt. Die hatte ich noch drin, weil es im Orginalscript weitere "Unterscripts" gibt.

  1. Wenn ich den Inhalt einer Tabellenzelle editieren soll, dann erwarte ich, dass im Eingabefeld der aktuell dort vorhandene Wert bereits eingetragen steht. Bei den Datumswerten ist das nicht der Fall.

Das hatte ich beim Entkernen mit entfernt. Ist jetzt im neuen Script wieder drin.

  1. Es ist in JavaScript zwar möglich, Funktionen irgendwo im Code zu definieren, es ist aber für ein späteres Überarbeiten sehr hilfreich, wenn alle wesentlichen Funktionen der Reihe nach definiert werden, damit man sie im Code besser findet.

Ich hoffe das ist in der neuen Variante etwas besser gelungen.

Schöne Grüße

Nico

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen