jQuery
Seit gestern ist nun endlich der lang ersehnte erste Release-Candidate von jQuery UI 1.5 verfügbar. Alle kritischen Bugs wurden laut den Entwicklern gefixt. Was nach wie vor fehlt auf der neuen UI-Webseite ist die Dokumentation im neuen Layout, die derzeit noch auf den jQuery-Seiten liegt, aber bereits weitgehend auf die Version 1.5 angepasst wurde. Und auch bei jQuery selbst kann man nun endlich - über eine Woche nach dem Release von Version 1.2.6 - die Änderungen im Detail nachlesen und erhält auch eine kurze Erklärung, was mit 1.2.4 und 1.2.5 los war.
Damit kommt hoffentlich wieder etwas Ruhe in die ganze Sache und wir können uns auf die Implementation stürzen.
David kann es halt doch nicht lassen - zum Glück - und hat Jens Grochtdreis und mich zum Sonntag Mittag zu einer gemütlichen Plauderstunde für eine neue Technikwürze-Sendung eingeladen. Thematisch drehte sich die Sendung größtenteils jQuery, ich habe dazu ja schon etwas gebloggt. Ich habe zwei Buchempfehlungen beigesteuert und durfte in der neuen Schimpf-Ecke von Technikwürze meinen andauernden “Wir können Ihnen DSL an dieser Adresse leider nicht bereitstellen” Frust etwas abbauen.
Jens brachte im Anschluss der wiedermal 51 Minuten das Thema auf die aktuell wie Pilze aus dem Boden sprießenden Blueprint-Clones und hat mir damit aus der Seele geredet. Allein im Mai habe ich bisher 3 gezählt:
Alles in allem reduzieren sich die Modifikationen auf geringfügige Anpassungen im Rahmen des persönlichen Geschmacks (Grid-Geometrie), dem Weglassen einiger Dinge oder der Kombination mit anderen Reset-Stylesheets (z.B. Tripoli). Ein alternativer logischer Ansatz für die Erstellung der Grids steht in keinem Fall dahinter. Und warum gerade wegen anderer Grid-Abstände jedesmal ein neues Framework veröffentlicht werden muss, erschließt sich mir nicht, für Blueprint gibt es einen Grid-CSS-Generator sowie vieles andere mehr. Warum das Rad zweimal erfinden?
Gestern ist also wiedermal eine neue jQuery-Version 1.2.5 online gegangen, die das bisherige Dimensions-Plugin obsolete machen soll. Ich verwende das Plugin schon eine Weile, daher an dieser Stelle ein paar Hinweise für andere Entwickler.
Bereits in der Version 1.2 des Dimensions-Plugins und jQuery 1.2.0 wurden die Methoden height, width, offset and offsetLite aus dem Plugin entfernt und in den jQuery Core übernommen. Allerdings nicht in vollem Umfang, denn die Konfiguationsmöglichkeiten (optionale Einrechung von Margins, Paddings, Border) vor allem für width, heightund offset sind eben nicht in dieser Form im Core zu finden. Leider wird auf diesen Umstand in den Release-Notes nicht ausreichend hingewiesen, so dass es hier zu Verwirrungen kommen kann. Die Core-Funktionen entsprechen nach meinem Kenntnisstand aktuell den Außenkanten der Box (also einschließlich Padding und Border), davon abweichende Werte muss man sich selbst ermitteln.
Wer einen differenzierten Zugriff auf Elementdimensionen (mit/ohne Margins/Border/Padding) benötigt, dem kann ich derzeit noch die Version 1.1.2 des Dimensions-Plugins empfehlen. Diese stellt ein deutlich umfangreicheres Arsenal an Funktionen zur Geometrieabfrage zur Verfügung. Aufpassen muss man hier dennoch, denn die Offset-Berechung einschließlich Margins funktioniert in dieser Version nach meiner Erfahrung aus der Anwendung im YAML-Builder nicht zuverlässig.
So richtig freuen kann ich mich über diese Enwicklung nicht, denn wenn ein so nützliches Plugin in den Core übergeht dann sollte nicht gleichzeitig der Funktionsumfang eingedampft werden. Aber es ist zum Glück auch kein unlösbares Problem. Wer sich die aktuelle Beta4 von jQuery UI herunterläd, findet im Verzeichnis /tests/ die Datei dimensions.html und damit einen Testcase, den Paul Bakaus auf meine Bitte hin schon vor einiger Zeit erstellt hat. Darin wird eine kleine Funktion definiert, die alle Geometriedaten in beliebiger Konfiguration fehlerfrei liefert und auf jQuery 1.2.4+ aufsetzt. Leider ist diese Datei - wie ich gerade gesehen habe - aus dem SVN Trunk schon wieder verschwunden und daher im Moment nur über das Download-Paket erhältlich. Ich hoffe, dass die jQuery-Doku in dieser Hinsicht möglichst bald auf den aktuellen Stand gebracht wird und dann vielleicht auch eine offizielle Dimensions-Demo bereitgestellt wird.
Im Rahmen der Abeit am YAML-Builder werde ich diesen Workaround mit Sicherheit übernehmen und ggf. auch ein allgemein gebräuchliches Plugin daraus bauen. Für den Moment sollten diese Infos aber erstmal allen Interessierten weiterhelfen.
Manchmal scheint selbst jQuery zu einfach gestrickt zu sein, um die Lösung für naheliegende Aufgaben mitzubringen. jQuery erlaubt die Manipulation von Elementen auf Basis von Events. Ein Klick -> tu was, Hover in/out -> tu was anderes. Will man aber ein Element nur aufgrund seiner Anwesenheit im Layout modifizieren, fällt die Lösung nicht so leicht ins Auge.
Helfen kann man sich in diesem Fall mit $(selector).each(function(){ ... }); oder indem man per if ... then auf das gewünschte Element prüft. Gerade habe ich darüber mit David Maciejewski (Mr. Technikwürze) im Chat gequatscht und wenige Minuten später war seine knuffige Lösung fertig und gebloggt.
Die Anwendung ist dann ganz einfach ...
$('#meinDIv').found(function(){
alert('Ja, mich gibt es, stell was mit mir an.');
});
... schaut’s Euch mal an.

Ein halbes Jahr nach dem ersten Preview Release des YAML Builders ist es es Zeit für die Version 1.0 dieses kleinen aber feinen Zusatztools zum YAML Framework. In dieser Version habe ich den Großteil der Features einbauen könnnen, die mir bereits letzten August am Herz lagen, damals jedoch aufgrund des Zeitmangels und der Arbeit an der 2. Auflage meines Buches “CSS Layouts” nicht integriert werden konnten.
Neueste Kommentare
- molily | 30.07.10 (20:21 Uhr)
Alles valide oder was?
- Jens Grochtdreis | 30.07.10 (14:56 Uhr)
Alles valide oder was?
- Ingo Chao | 30.07.10 (13:06 Uhr)
Alles valide oder was?
- Jens Grochtdreis | 30.07.10 (11:54 Uhr)
Alles valide oder was?
- domingos | 29.07.10 (14:03 Uhr)
Alles valide oder was?
- Eric Eggert | 29.07.10 (11:22 Uhr)
Alles valide oder was?