Mittwoch, 9. Februar 2011

Petersen und andere Namen


Da rankt sich im schönen Städtchen Jena alles um die Frage wie ein Platz der, in guter Tradition schon häufiger umbenannt wurde, (im NS hieß der Platz Adolf-Hitler-Platz, während der DDR Karl-Marx-Platz) nun weiter heißen soll. Der aktuelle Name "Petersen-Platz" bezieht sich auf den Jenaer Reformpädagogen Peter Petersen der, den Zeitgeist mitgestaltend, Anfang des 20. Jahrhunderts das "JenaPlan"-Schulkonzept schuf. Die heiße Diskussion dreht sich in Jena jedoch nicht um das Schulkonzept (die Jenaer Schule welche das Konzept verfolgt, hat sich wohlweißlich nicht nach dem Entwickler benannt) sondern um sein Verhalten während des NS. Die Einen behaupten, seine Verhalten wäre damals notwendig gewesen, die Anderen sehen in Petersen einen Vor-/Mitdenker des NS Staats. Als Parallele möchte ich dazu die Staufenbergstraße anführen die sich ebenso auf eine Person bezieht, die in der Zeit des NS weit entfernt davon war den faschistischen Staat zu kritisieren. Nur der Hitler, der gefiel dem Staufenberg nicht.

Klar ist ja, aus welchem Grund der Platz und die Straße so benannt wurden. Petersen soll damit für sein reformpädagogische Konzept und Staufenberg für seinen (missglückten) Anschlag geehrt werden. Ich bin mir sicher, beim Wühlen in der Lebensgeschichte vieler, nach denen Namen, Plätze, Gassen oder wer weiß was benannt wurden, finden sich dunkle Kapitel. Die Bennenung von Orten nach Personen um diese zu ehren wiedert mich jedoch im Gesamten an. Aufgrund eines asymetrischen Menschenbildes wird davon ausgegangen, dass bestimmte Personen herausragend ware, in ihrem Sein. Und andere eben nicht. Da wird nicht gefragt wie der nicht gewählte Stadtrat XY als Stadtrat gewesen wäre (vgl. Stadtrat Lehmann-Str in Jena Ost) oder ob Curt Unckel nicht nur deshalb ein für Jena wichtiger "Völkerkundler" wurde weil er es sich im Gegensatz zu der viel besser geeigneten Frau ABC leisten konnte nach Südamerika auszuwandern. Menschen die tolle Dinge tun haben sicher daran auch einen Eigenanteil. Aber Menschen verkacken es auch immer wieder. Und wie wichtig das "verkacken" gegenüber den "tollen Dingen" ist die sie tun, ist immer auch eine politische Frage. Eine Frau die Tolles tat, aber Ihre Kinder schlug wird inzwischen anders betrachtet als früher. Und Alan Turing wurde, nachdem er entscheidend zur Entschlüsselung deutscher Kriegsdepeschen beigetragen hatte, aufgrund seiner sexuellen Neigung verfolgt - inzwischen ehrt man Ihn. Ein anderes Beispiel ist Mutter Theresa (ich verweise mal nur auf den Wikieintrag). Ich votiere also für eine vollständige Abkehr von der Ehrung von Menschen für ihre tollen Taten, ich sehe das hanseatisch.

In Bezug auf den Petersen Platz in Jena halte ich jedoch die Umbenennung auch abseits meiner grundsätzlichen Ablehnung für angebracht. Selbst die JU hält die Beibehaltung für einen Widerspruch, fordert jedoch in einem Tweet vom 6. Februar 2011:

[..] "Keine Umbenennung des Petersenplatzes! Mit Widersprüchen leben lernen!"






Petersens rassistische (schriftliche) Äußerungen lassen sich nämlich nicht leugnen, und mit ihnen muss umgegangen werden. Wenn sich jetzt in Jena der ach-so antifaschistische Bürgermeister und der ihn dabei gerne unterstützende Stadtrat nicht für eine Umbenennung entscheiden können, dann unterstützen sie diejenigen, die zum Thema "böse, vergangene Nazizeit" möglichst gerne Richard Fish aus Ally McBeal zitieren würden: "Schwamm drüber!".


Donnerstag, 3. Februar 2011

Neue angeheftete Elemente haben keine Funktion (mehr) [Update]

Ohne Frage, jQuery ist eine JS Bibliothek die es in sich hat. Wie erinnere ich mich mit Grauen an den Aufwand in einem select-Element eine Option auszuwählen; dagegen mit jQuerys $select.val(auswahl) ein Kinderspiel.
Aber vor kurzem stolperte ich über ein Problem das mich doch ordentliche Zeit gekostet hat. Mein Ziel war an ein Element (legend) ein span-Element das mit einem click-Eventhandler ausgestattet wurde  anzuheften:
$('legend', fieldset).append(
    $('<span>').….click(tuWas)
);
Brav erschien das span-Element auch im fieldset, nur es rührte sich nicht. Nach langer Fehlersuche fand ich eine Formulierung mit der ich zum Ziel kam:
fieldset.children('legend').append(
    $('<span>').….click(tuWas)
);
Ganz klar, der Unterschied war das Zielelement und nicht das anzuheftende Element, doch wo nur war der Fehler? Nach dem beim konkreten Auftauchen keine Zeit für eine ordentliche Analyse mehr war bin ich heute Abend dem Problem auf den Grund gegangen. Im Prinzip ist auch alles ganz einfach:
  1. Aufgrund komplizierterer Verschachtelungen waren (fehlerhafterweise) bei der Ursprungsversion mehr als ein HTML-Element gespeichert: $('legend', fieldset).length > 1(!)
  2. jQuery kopiert das anzufügende Element, und heftet es an alle Objekte an, nur leider gehen dabei seine Eventhandler verloren, und zwar bei jedem angehefteten Element (und nicht wie naiv erwartet bei allen Kopien, aber nicht dem ersten (original) Objekt).
    Das passiert übrigens unabhängig davon wie ich das Objekt anhefte, also traditionell per Elternteil.append(Kind) oder in der Yoda-Notation mit Kind.appendTo(Elternteil).
  3. Selbst wenn ich das Kind-Element mit der .clone()-Methode klone bevor ich es anhefte, auch das geklonte Element hat keine Eventhandler mehr - unterscheidet sich also deutlich vom Original, so wie Dolly.
  4. Ein neuer Fall von RTFM: Die richtige verwendung der .clone()-Methode hätte geholfen; Eventhandler werden mit .clone(true) mitgeklont.
Es gibt also zwei saubere Lösungen, je nachdem welcher konkrete Fall vorliegt:
  1. Falls es möglich ist sicherzustellen, dass immer nur an ein Element andere Elemente mit Eventhandlern angeheftet werden ist das die einfachere Lösung.
  2. Wenn das nicht möglich ist so kann auf die .each() Notation zurückgegriffen werden:
    ELTERNELEMENT.each(function() {
        $(this).append(
            $(ELEMENT).....EVENTHANDLER(function(){tuWas;})
        )
    });
PS: Ich bin mir nicht sicher ob ich nicht bei jQuery einen Bugreport filen sollte...
PSS: Wen außer mir erinnert die jQuery/JS-im-Allgemeinen Schreibweise an den Kampf der Klammern bei LISP?