Hoewel sommige conceptuele variaties bestaan (bijvoorbeeld functies zoals $ .ajax
) in de jQuery API, is het centrale concept achter jQuery "iets vinden, iets doen". Selecteer meer specifiek DOM-element (en) uit een HTML-document en doe er vervolgens iets mee met behulp van jQuery-methoden. Dit is het concept met de grote lijnen.
Om dit concept naar huis te rijden, kunt u de onderstaande code bekijken.
Merk op dat we in dit HTML-document jQuery gebruiken om een DOM-element te selecteren (). Met iets geselecteerd, doen we dan iets met de selectie door de jQuery-methoden aan te roepen
tekst()
, attr ()
, en appendTo ()
.
De tekst
methode riep de ingepakt element en stel de weergavetekst van het element in als "jQuery." De
attr
oproep stelt de href
attribuut aan de jQuery-website.
Grokking van het basisbegrip "iets vinden, iets doen" is van cruciaal belang om als jQuery-ontwikkelaar vooruit te komen.
Hoewel het selecteren van iets en het doen van iets het kernconcept achter jQuery is, zou ik dit concept willen uitbreiden om ook iets te creëren. Daarom zou het concept achter jQuery kunnen worden uitgebreid om eerst iets nieuws te maken, het te selecteren en er vervolgens iets mee te doen. We zouden dit concept achter het concept achter jQuery kunnen noemen.
Wat ik probeer duidelijk te maken, is dat je niet vastzit aan het selecteren van iets dat al in de DOM zit. Het is extra belangrijk om te laten groeten dat jQuery kan worden gebruikt om nieuwe DOM-elementen te maken en vervolgens iets met deze elementen te doen.
In het onderstaande codevoorbeeld maken we een nieuwe element dat niet in de DOM voorkomt. Eenmaal aangemaakt, wordt deze geselecteerd en vervolgens gemanipuleerd.
Het belangrijkste concept om hier op te pikken is dat we het creëren element on the fly en vervolgens erop te opereren alsof het al in de DOM zat.
Er zijn bekende problemen met de jQuery-methoden die niet correct werken wanneer een browser een HTML-pagina in de eigenaardighedenmodus rendert. Zorg ervoor dat wanneer u jQuery gebruikt, de browser de HTML interpreteert in de standaardmodus of bijna-standaardmodus door een geldig doctype te gebruiken.
Voor de juiste functionaliteit gebruikt u codevoorbeelden in dit boek het HTML 5-doctype.
jQuery start een aangepast evenement met de naam klaar
wanneer de DOM is geladen en beschikbaar is voor manipulatie. Code die de DOM manipuleert, kan worden uitgevoerd in een handler voor deze gebeurtenis. Dit is een algemeen patroon dat wordt gezien met het gebruik van jQuery.
In het volgende voorbeeld zijn drie gecodeerde voorbeelden van deze aangepaste gebeurtenis in gebruik.
Houd in gedachten dat je er zoveel kunt bijvoegen klaar()
gebeurtenissen in het document zoals u zou willen. Je bent niet beperkt tot slechts één. Ze worden uitgevoerd in de volgorde waarin ze zijn toegevoegd.
Meestal willen we niet wachten op de window.onload
evenement. Dat is het punt van het gebruik van een aangepast evenement zoals klaar()
die code zal uitvoeren voordat het venster wordt geladen, maar nadat de DOM klaar is om te worden doorlopen en gemanipuleerd.
Soms willen we eigenlijk wel wachten. Terwijl de gewoonte klaar()
evenement is geweldig voor het uitvoeren van code zodra de DOM beschikbaar is, we kunnen jQuery ook gebruiken om code uit te voeren zodra de volledige webpagina (inclusief alle items) volledig is geladen.
Dit kan gedaan worden door een load event handler aan de venster
voorwerp. jQuery biedt de laden()
gebeurtenismethode die kan worden gebruikt om een functie op te roepen als het venster volledig is geladen. Hieronder geef ik een voorbeeld van de laden()
gebeurtenismethode in gebruik.
Vanaf jQuery 1.3, garandeert de bibliotheek niet langer dat alle CSS-bestanden worden geladen voordat deze de custom opstart klaar()
evenement. Vanwege deze wijziging in jQuery 1.3 moet u altijd alle CSS-bestanden vóór een jQuery-code opnemen. Dit zorgt ervoor dat de browser de CSS heeft geparseerd voordat deze verder gaat met het JavaScript dat later in het HTML-document is opgenomen. Uiteraard kunnen afbeeldingen waarnaar wordt verwezen via CSS al dan niet worden gedownload als de browser het JavaScript parseert.
Bij het insluiten van jQuery in een webpagina kiezen de meeste mensen ervoor om de broncode te downloaden en ernaar te linken vanuit een persoonlijk domein / host. Er zijn echter nog andere opties waarbij iemand anders de jQuery-code voor u host.
Google host verschillende versies van de jQuery-broncode met de bedoeling dat deze door iedereen wordt gebruikt. Dit is eigenlijk heel handig. In het onderstaande codevoorbeeld gebruik ik een element to include a minified version of jQuery that is hosted by Google.
Google host ook verschillende eerdere versies van de jQuery-broncode en voor elke versie zijn verkleinde en niet-verkleinde varianten beschikbaar. Ik raad aan om de niet-verkleinde variant te gebruiken tijdens de ontwikkeling, omdat foutopsporingfouten altijd gemakkelijker zijn als je te maken hebt met niet-verkleinde code.
Een voordeel van het gebruik van een door Google gehoste versie van jQuery is dat deze betrouwbaar, snel en mogelijk in de cache is opgeslagen.
De gewoonte klaar()
evenement is niet helemaal nodig. Als uw JavaScript-code de DOM niet beïnvloedt, kunt u deze overal in het HTML-document opnemen. Dit betekent dat u de klaar()
event helemaal als uw JavaScript-code niet afhankelijk is van het intact zijn van de DOM.
De meeste JavaScript-systemen, met name jQuery-code, zullen betrekking hebben op het manipuleren van de DOM. Dit betekent dat de DOM volledig moet worden geparseerd door de browser zodat u erop kunt werken. Dit is de reden waarom ontwikkelaars vastzaten aan de window.onload
achtbaanrit voor een paar jaar nu.
Om het gebruik van de te vermijden klaar()
gebeurtenis voor code die werkt op de DOM, kunt u eenvoudig uw code in een HTML-document plaatsen vóór de afsluiting
element. Hierdoor zorgt u ervoor dat de DOM volledig is geladen, simpelweg omdat de browser het document van boven naar beneden parseert. Als u uw JavaScript-code in het document plaatst na de DOM-elementen die het manipuleert, hoeft u het niet te gebruiken klaar()
evenement.
In het onderstaande voorbeeld heb ik het gebruik van klaar()
door simpelweg mijn script te plaatsen voordat het document wordt gesloten. Dit is de techniek die ik gebruik in dit boek en op de meeste sites die ik bouw.
Hallo, ik ben de DOM! Script weg!