| Inhaltsverzeichnis | 4 |
---|
| Vorwort | 12 |
---|
| 1 JavaScript: Ein Überblick | 14 |
---|
| 1.1 Webanwendungen | 14 |
| 1.2 Serverseitige Webanwendungen | 15 |
| 1.3 Eingebettet | 16 |
| 1.4 JavaScript als Wunderwaffe? | 17 |
| 1.5 Zusammenfassung | 18 |
| 2 Willkommen in der Welt von jQuery | 20 |
---|
| 2.1 Herunterladen und Einbinden von jQuery | 20 |
| 2.1.1 Download von der jQuery-Webseite | 21 |
| 2.1.2 Verwendung eines CDN | 23 |
| 2.1.3 Welcher Weg ist der bessere? | 25 |
| 2.2 jQuery vs. JavaScript | 25 |
| 2.3 Dokumententraversierung | 28 |
| 2.3.1 CSS-Selektoren | 28 |
| 2.3.2 Element-Sets | 31 |
| 2.3.3 Fluent Interface | 32 |
| 2.3.4 Traversierung der Baumstruktur | 32 |
| 2.3.5 jQuerys Gedächtnis für Sets | 34 |
| 2.4 Dokumentenmanipulation | 35 |
| 2.4.1 CSS-Eigenschaften | 35 |
| 2.4.2 Umgang mit Attributen und CSS-Klassen | 38 |
| 2.4.3 Erstellen neuer Elemente | 40 |
| 2.4.4 Elemente im DOM platzieren | 42 |
| 2.4.5 Inhalte von Elementen auslesen und verändern | 43 |
| 2.4.6 Elemente ersetzen, umhüllen oder löschen | 47 |
| 2.4.7 Elemente aus dem DOM lösen | 51 |
| 2.4.8 Optische Position und Größe | 51 |
| 2.4.9 Callbacks anstelle von Werten mit jQuery 1.4 | 56 |
| 2.5 Ereignisbehandlung | 57 |
| 2.5.1 Ereignisse registrieren mit jQuery | 57 |
| 2.5.2 Das Event-Objekt | 58 |
| 2.5.3 Ereignisregistrierungen wieder aufheben | 59 |
| 2.5.4 Ereignisse auslösen | 60 |
| 2.5.5 Umgang mit benutzerdefinierten Ereignissen | 61 |
| 2.5.6 Abkürzungen zur Ereignisregistrierung | 62 |
| 2.5.7 Ereignisnamensräume | 64 |
| 2.5.8 Der Weg eines Ereignisses | 65 |
| 2.5.9 Ereignisdelegation | 66 |
| 2.5.10 Ereignisse außerhalb von Elementen | 70 |
| 2.5.11 Die Proxy-Funktion | 73 |
| 2.6 Animation | 75 |
| 2.6.1 CSS-Eigenschaften über die Zeit verändern | 75 |
| 2.6.2 Relative Werte als Animationsziel | 76 |
| 2.6.3 Werte mit spezieller Bedeutung | 77 |
| 2.6.4 Mehrschrittige Animationen | 78 |
| 2.6.5 Animationen während der Ausführung anhalten | 80 |
| 2.6.6 Eine Easing-Funktion pro Eigenschaft | 80 |
| 2.6.7 Animieren mit Abkürzungen | 80 |
| 2.7 AJAX mit jQuery | 82 |
| 2.7.1 JSON | 83 |
| 2.7.2 Verschiedene Kommunikationswege | 85 |
| 2.7.3 Die ajax-Funktion | 90 |
| 2.7.4 Globale AJAX-Optionen mit ajaxSetup | 99 |
| 2.7.5 Abkürzungen auf dem Weg zu neuen Daten | 100 |
| 2.8 Zusammenfassung | 102 |
| 3 jQuery-Plug-ins | 104 |
---|
| 3.1 Was sind jQuery-Plug-ins? | 104 |
| 3.2 Unterschiedliche Plug-in-Typen | 105 |
| 3.2.1 Neue Methoden | 106 |
| 3.2.2 Neue Funktionen | 108 |
| 3.2.3 Special Events | 108 |
| 3.2.4 Animations Easing-Funktionen | 108 |
| 3.2.5 CSS-Selektoren | 109 |
| 3.2.6 Widgets | 109 |
| 3.2.7 Effects | 109 |
| 3.2.8 Behaviours | 110 |
| 3.3 Grundregeln der Plug-in-Entwicklung | 110 |
| 3.3.1 Konventionen zur Namensgebung | 110 |
| 3.3.2 Zugriff auf die jQuery-Bibliothek | 112 |
| 3.3.3 Anlegen neuer Set-Methoden | 114 |
| 3.3.4 Anlegen neuer Funktionen | 115 |
| 3.3.5 Beachtung des Fluent-Interface | 115 |
| 3.3.6 Multiple Elemente eines Sets korrekt behandeln | 116 |
| 3.4 Grundgerüst | 117 |
| 3.5 Zusammenfassung | 118 |
| 4 Hello World | 120 |
---|
| 4.1 Anforderungen an das Plug-in | 120 |
| 4.2 Grundgerüst des world-Plug-ins | 120 |
| 4.3 Behandlung von Optionen | 121 |
| 4.3.1 Implementierung der Optionsbehandlung | 122 |
| 4.4 Manipulation des DOM | 125 |
| 4.5 Das vollständige Plug-in | 126 |
| 4.6 Zusammenfassung | 127 |
| 5 Objektorientierung | 128 |
---|
| 5.1 Konzept der Objektorientierung | 128 |
| 5.1.1 Ein Beispiel bitte! | 129 |
| 5.2 Klassen != Prototypen | 130 |
| 5.2.1 Objekte in JavaScript | 131 |
| 5.2.2 Prototypen | 134 |
| 5.2.3 Konstruktorfunktionen | 138 |
| 5.3 Zurück zum Bankszenario | 140 |
| 5.3.1 Der Prototyp für das Kundenobjekt | 140 |
| 5.3.2 Der Prototyp für das Kontenobjekt | 141 |
| 5.3.3 Anlegen neuer Kunden- und Kontenobjekte | 142 |
| 5.4 Prototype Chains | 142 |
| 5.4.1 Ketten von Prototypen | 143 |
| 5.4.2 Ein weiteres Hindernis: Konstruktorfunktionen | 145 |
| 5.5 Zurück zum Bankszenario II | 147 |
| 5.6 Zusammenfassung | 148 |
| 6 Livesearch | 150 |
---|
| 6.1 Livesearch im Detail | 150 |
| 6.2 Aufgaben des Plug-ins | 151 |
| 6.3 Kategorisierung des Plug-ins | 153 |
| 6.3.1 Objektorientiertes Design | 153 |
| 6.3.2 Objektorientieru
|