În timp ce există unele variații conceptuale (de ex $ .ajax
) în API-ul jQuery, conceptul central din spatele jQuery este "găsiți ceva, faceți ceva". Mai precis, selectați elementele DOM dintr-un document HTML și apoi faceți ceva cu ele folosind metodele jQuery. Acesta este conceptul de imagine mare.
Pentru a conduce acest concept acasă, reflectați codul de mai jos.
Observați că în acest document HTML folosim jQuery pentru a selecta un element DOM (). Cu ceva selectat, vom face apoi ceva cu selecția invocând metodele jQuery
text()
, attr ()
, și adăuga la()
.
text
metoda numită pe învelit element și setați textul afișat al elementului "jQuery".
attr
apeluri stabilește href
atribuiți site-ului web jQuery.
Grokking conceptul "găsi ceva, face ceva" este esențial pentru avansarea ca dezvoltator jQuery.
În timp ce selectați ceva și faceți ceva este conceptul de bază în spatele jQuery, aș dori să extind acest concept pentru a include și crearea de ceva. Prin urmare, conceptul din spatele jQuery ar putea fi extins pentru a include mai întâi crearea unui nou lucru, selectarea lui și apoi a face ceva cu el. Am putea numi acest concept, în spatele conceptului, în spatele jQuery.
Ceea ce încerc să fac evident este că nu ești blocat doar cu selectarea ceva care este deja în DOM. Este, de asemenea, important să groku că jQuery poate fi folosit pentru a crea noi elemente DOM și apoi să facă ceva cu aceste elemente.
În exemplul de cod de mai jos, creăm un nou element care nu este în DOM. Odată creat, este selectat și apoi manipulat.
Conceptul cheie de abordat aici este acela că noi creăm element în zbor și apoi operează pe ea ca și cum ar fi fost deja în DOM.
Există probleme cunoscute în care metodele jQuery nu funcționează corect atunci când un browser redă o pagină HTML în modul quirks. Asigurați-vă că atunci când utilizați jQuery că browserul interpretează codul HTML în modul standard sau în aproape standard, utilizând o doctype validă.
Pentru a asigura funcționalitatea corespunzătoare, exemplele de cod din această carte utilizează modelul HTML 5 doctype.
jQuery declanșează un eveniment personalizat numit gata
când DOM este încărcat și disponibil pentru manipulare. Codul care manipulează DOM poate rula într-un handler pentru acest eveniment. Acesta este un model comun văzut cu utilizarea jQuery.
Următorul exemplu prezintă trei exemple codificate ale acestui eveniment personalizat în uz.
Rețineți că puteți atașa cât mai multe gata()
evenimente în document așa cum doriți. Nu vă limitați la unul singur. Ele sunt executate în ordinea în care au fost adăugate.
De obicei, nu vrem să așteptăm window.onload
eveniment. Acesta este punctul de utilizare a unui eveniment personalizat, cum ar fi gata()
care va executa codul înainte de încărcarea ferestrei, dar după ce DOM este gata să fie traversat și manipulat.
Cu toate acestea, uneori, de fapt, nu vreau să aștept. În timp ce obiceiul gata()
evenimentul este bun pentru executarea codului odată ce DOM este disponibil, de asemenea, putem folosi jQuery pentru a executa codul după ce întreaga pagină web (inclusiv toate materialele) este complet încărcată.
Acest lucru se poate face prin atașarea unui handler de evenimente de încărcare la fereastră
obiect. jQuery oferă sarcină()
eveniment care poate fi folosit pentru a invoca o funcție odată ce fereastra este complet încărcată. Mai jos, vă ofer un exemplu de sarcină()
în timpul utilizării.
Începând cu jQuery 1.3, biblioteca nu mai garantează că toate fișierele CSS sunt încărcate înainte ca acestea să fie create gata()
eveniment. Din cauza acestei schimbări în jQuery 1.3, ar trebui să includeți întotdeauna toate fișierele CSS înainte de orice cod jQuery. Acest lucru va asigura că browserul a analizat CSS înainte de a trece la JavaScript inclus mai târziu în documentul HTML. Desigur, imaginile care fac referire prin CSS pot sau nu să fie descărcate în timp ce browserul analizează JavaScript.
Când încorporați jQuery într-o pagină Web, majoritatea oamenilor aleg să descarce codul sursă și să îl leagă de un domeniu personal / gazdă. Cu toate acestea, există și alte opțiuni care implică altcineva care găzduiește codul jQuery pentru dvs..
Google găzduiește mai multe versiuni ale codului sursă jQuery, cu intenția de a fi utilizat de oricine. Acest lucru este de fapt foarte util. În exemplul de cod de mai jos, folosesc a element to include a minified version of jQuery that is hosted by Google.
De asemenea, Google găzduiește mai multe versiuni anterioare ale codului sursă jQuery, iar pentru fiecare versiune sunt furnizate variante miniaturate și nonminificate. Vă recomandăm să utilizați varianta nonminifiată în timpul dezvoltării, deoarece erorile de depanare sunt întotdeauna mai ușoare atunci când aveți de-a face cu cod nonminifiat.
Un avantaj al utilizării unei versiuni găzduite de Google a jQuery este că este fiabilă, rapidă și potențial stocată în cache.
Obiceiul gata()
evenimentul nu este absolut necesar. Dacă codul dvs. JavaScript nu afectează DOM, îl puteți include oriunde în documentul HTML. Acest lucru înseamnă că puteți evita gata()
eveniment în totalitate dacă codul dvs. JavaScript nu depinde de DOM fiind intact.
Cele mai multe coduri JavaScript în zilele noastre, în special jQuery, vor implica manipularea DOM. Aceasta înseamnă că DOM trebuie să fie analizat pe deplin de către browser pentru a putea opera pe el. Acest fapt este motivul pentru care dezvoltatorii s-au blocat pe window.onload
roller coaster plimbare de câțiva ani acum.
Pentru a evita utilizarea gata()
eveniment pentru cod care funcționează pe DOM, puteți plasa pur și simplu codul într-un document HTML înainte de închidere
element. Acest lucru asigură că DOM este încărcat complet, pur și simplu pentru că browserul va analiza documentul de sus în jos. Dacă plasați codul JavaScript în document după elementele DOM pe care le manipulează, nu este necesar să utilizați codul JavaScript gata()
eveniment.
În exemplul de mai jos, am renunțat la utilizarea gata()
prin plasarea pur și simplu a scriptului meu înainte de închiderea corpului documentului. Aceasta este tehnica pe care o folosesc în această carte și pe majoritatea site-urilor pe care le construiesc.
Bună, eu sunt DOM! Scriptul este departe!