Mens noen konseptuelle variasjoner eksisterer (for eksempel funksjoner som $ .ajax
) i jQuery API, er det sentrale konseptet bak jQuery "finne noe, gjør noe". Mer spesifikt, velg DOM element (er) fra et HTML-dokument og gjør deretter noe med dem ved hjelp av jQuery-metoder. Dette er det store bildet konseptet.
For å drive dette konseptet hjem, reflektere over koden nedenfor.
Legg merke til at i dette HTML-dokumentet bruker vi jQuery til å velge et DOM-element (). Med noe valgt, gjør vi da noe med valget ved å påberope jQuery-metodene
tekst()
, attr ()
, og appendTo ()
.
De tekst
metode kalt på innpakket element og sett displayteksten til elementet for å være "jQuery." De
attr
anrop setter href
attributt til jQuery-nettstedet.
Grokking "finne noe, gjør noe" grunnleggende konsept er avgjørende for å utvikle seg som en jQuery-utvikler.
Mens du velger noe og gjør noe, er kjernekonseptet bak jQuery, vil jeg gjerne utvide dette konseptet for å inkludere å skape noe også. Derfor kan konseptet bak jQuery utvides til å inkludere først å lage noe nytt, velge det, og deretter gjøre noe med det. Vi kunne kalle dette konseptet, bak konseptet, bak jQuery.
Det jeg prøver å gjøre er tydelig at du ikke er fast i å bare velge noe som allerede finnes i DOM. Det er dessuten viktig å groke at jQuery kan brukes til å lage nye DOM-elementer og deretter gjøre noe med disse elementene.
I koden eksempelet nedenfor lager vi en ny element som ikke er i DOM. Når den er opprettet, er den valgt og deretter manipulert.
Nøkkelbegrepet for å plukke opp her er at vi skaper element på flyet og deretter operere på det som om det allerede var i DOM.
Det er kjente problemer med at jQuery-metodene ikke fungerer riktig når en nettleser gjør en HTML-side i quirks-modus. Pass på at når du bruker jQuery, leser tolken HTML i standardmodus eller nesten standardmodus ved å bruke en gyldig doktype.
For å sikre riktig funksjonalitet bruker kodeeksempler i denne boken HTML 5-doktypen.
jQuery brenner en tilpasset hendelse som heter klar
når DOM er lastet og tilgjengelig for manipulering. Kode som manipulerer DOM kan kjøre i en handler for denne hendelsen. Dette er et vanlig mønster sett med jQuery-bruk.
Følgende eksempel inneholder tre kodede eksempler på denne tilpassede hendelsen i bruk.
Husk at du kan legge til så mange klar()
hendelser til dokumentet som du vil. Du er ikke begrenset til bare en. De blir henrettet i den rekkefølgen de ble lagt til.
Vanligvis vil vi ikke vente på window.onload
begivenhet. Det er poenget med å bruke en tilpasset begivenhet som klar()
som vil utføre kode før vinduet laster, men etter at DOM er klar til å bli krysset og manipulert.
Men noen ganger vil vi faktisk vente. Mens den egendefinerte klar()
Hendelsen er flott for å utføre kode når DOM er tilgjengelig, vi kan også bruke jQuery til å utføre kode når hele websiden (inkludert alle aktiva) er fullstendig lastet.
Dette kan gjøres ved å legge ved en lasthendelseshåndterer til vindu
gjenstand. jQuery gir laste()
Hendelsesmetode som kan brukes til å påkalle en funksjon når vinduet er fullstendig lastet. Nedenfor gir jeg et eksempel på laste()
Hendelsesmetode i bruk.
Fra jQuery 1.3 garanterer biblioteket ikke lenger at alle CSS-filer er lastet før det brenner skikken klar()
begivenhet. På grunn av denne endringen i jQuery 1.3, bør du alltid inkludere alle CSS-filer før en jQuery-kode. Dette vil sikre at nettleseren har analysert CSS før den går videre til JavaScript inkludert senere i HTML-dokumentet. Selvfølgelig kan bilder som refereres via CSS, lastes ned eller ikke, da nettleseren analyserer JavaScript.
Når du legger inn jQuery på en nettside, velger de fleste å laste ned kildekoden og lenke til den fra et personlig domene / vert. Det er imidlertid andre alternativer som involverer noen andre som serverer jQuery-koden for deg.
Google vert for flere versjoner av jQuery-kildekoden med den hensikt at den blir brukt av noen. Dette er faktisk veldig praktisk. I koden eksempelet nedenfor bruker jeg a element to include a minified version of jQuery that is hosted by Google.
Google er også vert for flere tidligere versjoner av jQuery-kildekoden, og for hver versjon er det gitt minifiserte og ikke-minifiserte varianter. Jeg anbefaler å bruke den ikke-minifiserte varianten under utviklingen, da feilsøkingsfeil alltid er lettere når du arbeider med ikke-minifisert kode.
En fordel ved å bruke en Google-vert versjon av jQuery er at den er pålitelig, rask og potensielt cached.
Tollen klar()
hendelsen er ikke helt nødvendig. Hvis JavaScript-koden din ikke påvirker DOM, kan du inkludere den hvor som helst i HTML-dokumentet. Dette betyr at du kan unngå klar()
hendelse helt hvis JavaScript-koden din ikke er avhengig av at DOM er intakt.
De fleste JavaScript nå til dags, spesielt jQuery-kode, vil innebære å manipulere DOM. Dette betyr at DOM må analyseres fullstendig av nettleseren for at du skal kunne operere på den. Dette er grunnen til at utviklere har sittet fast på window.onload
berg-og dalbane tur for et par år nå.
For å unngå å bruke klar()
Hendelse for kode som opererer på DOM, kan du ganske enkelt plassere koden i et HTML-dokument før avslutningen
element. Dette gjør at DOM er fullstendig lastet, bare fordi nettleseren vil analysere dokumentet fra topp til bunn. Hvis du plasserer JavaScript-koden i dokumentet etter at DOM-elementene det manipulerer, er det ikke nødvendig å bruke klar()
begivenhet.
I eksemplet nedenfor har jeg glemt bruken av klar()
ved å bare plassere skriptet mitt før dokumenthuset lukkes. Dette er teknikken jeg bruker gjennom denne boken og på de fleste nettstedene jeg bygger.
Hei, jeg er DOM! Skript unna!