Medan vissa konceptuella variationer existerar (t ex funktioner som $ .ajax
) i jQuery API, är det centrala begreppet bakom jQuery "hitta något, gör någonting". Mer specifikt, välj DOM-element (er) från ett HTML-dokument och gör sedan något med dem med jQuery-metoder. Detta är det stora bildkonceptet.
För att driva detta koncept hem, reflektera över koden nedan.
Observera att i detta HTML-dokument använder vi jQuery för att välja ett DOM-element (). Med något valt väljer vi något med valet genom att påberopa jQuery-metoderna
text()
, attr ()
, och append till()
.
De text
Metoden ringde på det inslagna element och ställ in elementets displaytext för att vara "jQuery." De
attr
anrop sätter href
attribut till jQuery webbplatsen.
Grokking "hitta något, gör någonting" grundbegrepp är avgörande för att utvecklas som en jQuery-utvecklare.
Medan du väljer något och gör något är kärnkonceptet bakom jQuery, skulle jag vilja förlänga detta koncept för att inkludera att skapa något också. Därför kan konceptet bakom jQuery utvidgas till att inkludera först skapa något nytt, välja det och sedan göra något med det. Vi kunde kalla detta konceptet bakom konceptet bakom jQuery.
Vad jag försöker göra uppenbart är att du inte är fast vid att bara välja något som redan finns i DOM. Det är dessutom viktigt att fira att jQuery kan användas för att skapa nya DOM-element och sedan göra något med dessa element.
I kodexemplet nedan skapar vi en ny element som inte finns i DOM. När den väl skapats väljs den och manipuleras sedan.
Det viktigaste konceptet att hämta här är att vi skapar element på flugan och sedan fungera som om det redan fanns i DOM.
Det finns kända problem med jQuery-metoder som inte fungerar korrekt när en webbläsare gör en HTML-sida i quirks-läge. Kontrollera när du använder jQuery att webbläsaren tolkar HTML i standardläge eller nästan standardläge genom att använda en giltig doktyp.
För att säkerställa korrekt funktionalitet använder kodexemplen i den här boken HTML 5-doktypen.
jQuery avfyrar en anpassad händelse som heter redo
när DOM är laddad och tillgänglig för manipulation. Kod som manipulerar DOM kan köras i en hanterare för den här händelsen. Detta är ett vanligt mönster som ses med jQuery-användningen.
Följande exempel innehåller tre kodade exempel på den här anpassade händelsen som används.
Tänk på att du kan bifoga så många redo()
händelser till dokumentet som du vill. Du är inte begränsad till bara en. De exekveras i den ordning de tillkom.
Vanligtvis vill vi inte vänta på window.onload
händelse. Det är meningen med att använda en anpassad händelse som redo()
som kommer att exekvera kod innan fönstret laddas, men efter att DOM är redo att traverseras och manipuleras.
Men ibland vill vi faktiskt vänta. Medan den anpassade redo()
händelsen är utmärkt för att exekvera kod när DOM är tillgängligt, kan vi också använda jQuery för att utföra kod när hela webbsidan (inklusive alla tillgångar) är helt laddad.
Detta kan göras genom att fästa en händelsehanterare på fönster
objekt. jQuery tillhandahåller ladda()
händelse metod som kan användas för att aktivera en funktion när fönstret är helt laddat. Nedan ger jag ett exempel på ladda()
händelse metod som används.
Med jQuery 1.3 garanterar biblioteket inte längre att alla CSS-filer laddas innan det brinner anpassningen redo()
händelse. På grund av denna ändring i jQuery 1.3 bör du alltid inkludera alla CSS-filer före någon jQuery-kod. Detta kommer att se till att webbläsaren har analyserat CSS innan den flyttas till JavaScript inkluderat senare i HTML-dokumentet. Naturligtvis kan bilder som refereras via CSS eventuellt hämtas när webbläsaren analyserar JavaScript.
När du lägger in jQuery på en webbsida väljer de flesta att ladda ner källkoden och länka till den från en personlig domän / värd. Det finns dock andra alternativ som innebär att någon annan värd jQuery-koden för dig.
Google är värd flera versioner av jQuery-källkoden med avsikt att den används av någon. Detta är faktiskt väldigt användbart. I kodexemplet nedan använder jag a element to include a minified version of jQuery that is hosted by Google.
Google är också värd för flera tidigare versioner av jQuery-källkoden, och för varje version tillhandahålls förminskade och icke-minskade varianter. Jag rekommenderar att du använder den icke-miniverade varianten under utveckling, eftersom felsökningsfel alltid är enklare när du hanterar icke-minifierad kod.
En fördel med att använda en Google-värdversion av jQuery är att den är pålitlig, snabb och eventuellt cachad.
Kunden redo()
händelsen är inte helt nödvändig. Om din JavaScript-kod inte påverkar DOM, kan du inkludera den någonstans i HTML-dokumentet. Detta innebär att du kan undvika redo()
händelse helt och hållet om din JavaScript-kod inte är beroende av att DOM är intakt.
De flesta JavaScript nuförtiden, speciellt jQuery-kod, innebär att man manipulerar DOM. Det betyder att DOM måste analyseras helt av webbläsaren för att du ska kunna fungera på den. Faktum är att utvecklare har fastnat på window.onload
berg och dalbana resa för ett par år nu.
För att undvika att använda redo()
händelse för kod som fungerar på DOM, kan du helt enkelt placera din kod i ett HTML-dokument före stängningen
element. Detta gör att DOM är helt laddat, helt enkelt för att webbläsaren ska analysera dokumentet från topp till botten. Om du placerar din JavaScript-kod i dokumentet efter att DOM-elementen har manipulerats behöver du inte använda redo()
händelse.
I exemplet nedan har jag försvunnit användningen av redo()
genom att helt enkelt placera mitt skript innan dokumentkroppen stängs. Detta är den teknik jag använder i hela denna bok och på de flesta webbplatser jag bygger.
Hej, jag är DOM! Skript borta!