Es gibt zwar einige konzeptionelle Variationen (z. B. Funktionen wie $ .ajax
) In der jQuery-API lautet das zentrale Konzept von jQuery "etwas finden, etwas tun". Wählen Sie insbesondere DOM-Elemente aus einem HTML-Dokument aus und bearbeiten Sie sie mit jQuery-Methoden. Dies ist das Gesamtkonzept.
Um dieses Konzept nach Hause zu bringen, denken Sie über den folgenden Code nach.
Beachten Sie, dass wir in diesem HTML-Dokument jQuery verwenden, um ein DOM-Element auszuwählen (). Wenn etwas ausgewählt ist, machen wir etwas mit der Auswahl, indem wir die jQuery-Methoden aufrufen
Text()
, attr ()
, und Anhängen()
.
Das Text
Methode, die auf der Verpackung aufgerufen wird Element und setzen Sie den Anzeigetext des Elements auf "jQuery". Das
attr
Anruf setzt die href
Attribut für die jQuery-Website.
Das grundlegende Konzept "etwas finden, etwas tun" ist wichtig, um als jQuery-Entwickler voranzukommen.
Wenn Sie etwas auswählen und etwas tun möchten, ist das Kernkonzept von jQuery. Ich möchte dieses Konzept jedoch auch auf die Erstellung von Objekten erweitern. Daher könnte das Konzept von jQuery dahingehend erweitert werden, dass zunächst etwas Neues erstellt, ausgewählt und dann etwas damit gemacht wird. Wir könnten das Konzept hinter jQuery nennen.
Ich versuche offensichtlich zu machen, dass Sie nicht nur etwas auswählen müssen, das bereits im DOM enthalten ist. Es ist außerdem wichtig zu wissen, dass mit jQuery neue DOM-Elemente erstellt werden können und dann etwas mit diesen Elementen gemacht werden kann.
Im folgenden Codebeispiel erstellen wir ein neues Element, das sich nicht im DOM befindet. Einmal erstellt, wird es ausgewählt und dann bearbeitet.
Das Schlüsselkonzept, das wir hier aufgreifen sollten, ist, dass wir das erstellen Element on the fly und dann darauf zu arbeiten, als ob es bereits im DOM wäre.
Es gibt bekannte Probleme mit jQuery-Methoden, die nicht richtig funktionieren, wenn ein Browser eine HTML-Seite im Quirks-Modus darstellt. Stellen Sie bei Verwendung von jQuery sicher, dass der Browser den HTML-Code im Standardmodus oder fast im Standardmodus interpretiert, indem Sie einen gültigen Doctype verwenden.
Um die ordnungsgemäße Funktionalität sicherzustellen, verwenden Codebeispiele in diesem Buch den Doctype HTML 5.
jQuery löst ein benutzerdefiniertes Ereignis mit dem Namen aus bereit
wenn das DOM geladen ist und für die Bearbeitung verfügbar ist. Code, der das DOM bearbeitet, kann in einem Handler für dieses Ereignis ausgeführt werden. Dies ist ein allgemeines Muster bei der Verwendung von jQuery.
Das folgende Beispiel enthält drei codierte Beispiele für dieses benutzerdefinierte Ereignis.
Denken Sie daran, dass Sie so viele anhängen können bereit()
Ereignisse zu dem Dokument, wie Sie möchten. Sie sind nicht nur auf einen beschränkt. Sie werden in der Reihenfolge ausgeführt, in der sie hinzugefügt wurden.
Normalerweise wollen wir nicht auf das warten window.onload
Veranstaltung. Das ist der Punkt der Verwendung eines benutzerdefinierten Ereignisses wie bereit()
Dadurch wird Code ausgeführt, bevor das Fenster geladen wird, aber nachdem das DOM bereit ist, durchlaufen und bearbeitet zu werden.
Manchmal wollen wir aber tatsächlich warten. Während der Brauch bereit()
Dieses Ereignis eignet sich hervorragend für die Ausführung von Code, sobald das DOM verfügbar ist. Mit jQuery können Sie auch Code ausführen, wenn die gesamte Webseite (einschließlich aller Assets) vollständig geladen ist.
Dies kann durch Anhängen eines Ladeereignishandlers an den Server erfolgen Fenster
Objekt. jQuery liefert die Belastung()
Ereignismethode, mit der eine Funktion aufgerufen werden kann, wenn das Fenster vollständig geladen ist. Nachfolgend gebe ich ein Beispiel für die Belastung()
verwendete Ereignismethode.
Ab jQuery 1.3 garantiert die Bibliothek nicht mehr, dass alle CSS-Dateien geladen werden, bevor der Benutzerdefiniert ausgelöst wird bereit()
Veranstaltung. Aufgrund dieser Änderung in jQuery 1.3 sollten Sie immer alle CSS-Dateien vor jQuery-Code einschließen. Dadurch wird sichergestellt, dass der Browser das CSS analysiert hat, bevor es in das später im HTML-Dokument enthaltene JavaScript verschoben wird. Bilder, die über CSS referenziert werden, können natürlich heruntergeladen werden, wenn der Browser das JavaScript analysiert.
Beim Einbetten von jQuery in eine Webseite wählen die meisten Benutzer den Quellcode und den Link von einer persönlichen Domäne / Host aus. Es gibt jedoch auch andere Optionen, bei denen eine andere Person den jQuery-Code für Sie hostet.
Google hostet mehrere Versionen des jQuery-Quellcodes, die von jedermann verwendet werden sollen. Das ist eigentlich sehr praktisch. Im folgenden Codebeispiel verwende ich a element to include a minified version of jQuery that is hosted by Google.
Google hostet auch mehrere frühere Versionen des jQuery-Quellcodes. Für jede Version werden reduzierte und nicht minimierte Varianten bereitgestellt. Ich empfehle die Verwendung der nicht minimierten Variante während der Entwicklung, da Fehler im Debugging immer einfacher sind, wenn Sie mit nicht reduziertem Code arbeiten.
Die Verwendung einer von Google gehosteten Version von jQuery hat den Vorteil, dass sie zuverlässig, schnell und möglicherweise zwischengespeichert ist.
Der Brauch bereit()
Veranstaltung ist nicht vollständig erforderlich. Wenn Ihr JavaScript-Code keinen Einfluss auf das DOM hat, können Sie es an einer beliebigen Stelle im HTML-Dokument einfügen. Dies bedeutet, dass Sie das vermeiden können bereit()
Ereignis insgesamt, wenn Ihr JavaScript-Code nicht davon abhängig ist, dass das DOM intakt ist.
Heutzutage wird bei JavaScript, insbesondere jQuery-Code, das DOM manipuliert. Dies bedeutet, dass das DOM vom Browser vollständig analysiert werden muss, damit Sie es bearbeiten können. Diese Tatsache ist der Grund, warum Entwickler auf der Website festgehalten wurden window.onload
Achterbahnfahrt seit einigen Jahren.
Um zu vermeiden, die bereit()
Ereignis für Code, der auf dem DOM ausgeführt wird, können Sie Ihren Code vor dem Schließen einfach in ein HTML-Dokument einfügen
Element. Dadurch wird sichergestellt, dass das DOM vollständig geladen ist, weil der Browser das Dokument von oben nach unten analysiert. Wenn Sie Ihren JavaScript-Code nach den DOM-Elementen, die er bearbeitet, in das Dokument einfügen, müssen Sie das nicht verwenden bereit()
Veranstaltung.
Im folgenden Beispiel habe ich auf die Verwendung von verzichtet bereit()
indem Sie einfach mein Skript platzieren, bevor der Dokumentkörper geschlossen wird. Dies ist die Technik, die ich in diesem Buch und auf den meisten Websites, die ich baue, verwende.
Hi, ich bin der DOM! Skript weg!