Koncept getera i postavljača u JavaScriptu samo je jedna od stvari koje biste trebali razumjeti. Lijepi su u jQueryju jer je API toliko dosljedan da kad ga jednom dobijete, možete prilično pretpostaviti kako će to funkcionirati za razne metode. Na najosnovnijoj razini ...
Postavljači nešto rade .
Dobivači vraćaju vrijednost .
Često se jedna metoda može koristiti na bilo koji način. Uzmimo za primjer metodu visine.
// Used as a "setter" - will set the height $("#example").height(100); // Used as a "getter" - will return a value var theHeight = $("#example").height();
Vidiš razliku? Postavljač prenosi parametar kada se koristi metoda. Geter ništa ne prolazi . Tako jQuery i sam zna što treba učiniti. Samo se testira postoji li parametar tamo ili ne. Ako nije, ponaša se poput dobivača. Ako je tamo, ponaša se poput postavljača. To je samo lijepa pogodnost API-ja, umjesto da imate zasebne metode poput getHeight i setHeight.
Vrijedno je napomenuti da getter koji sam koristi ne čini ništa.
// Useless $("#example").height();
A ako postavite vrijednost varijable pomoću postavljača, dobit ćete objekt jQuery.
// x will be a jQuery object containing #example var x = $("#example").height(100);
To može biti zbunjujuća dlaka, ali ujedno i mali trik za spremanje koda. Ako znate da trebate i predmemorirati taj jQuery objekt i postaviti njegovu visinu, možete to učiniti i u jednom retku koda.
Pogledajte olovku 8ff68485673396d452f650bfb437fb2a Chrisa Coyiera (@chriscoyier) na CodePen
Također spomenuto u članku je box-sizing: border-box;
. Veličina okvira izuzetno je korisno CSS svojstvo. Veliki sam zagovornik postavljanja na sve elemente, poput:
* ( box-sizing: border-box; )
Kao što je zabilježeno u videozapisu, ovo također čini height()
jQuery malo predvidljivijim i dosljednijim. Bez okvira s okvirom, height()
jednako je svojstvu visine u CSS-u ili bilo kojoj visini elementa prirodno, minus udaljenost i obrub. S border-box
setom, height()
točno je koliko visine zauzima taj element na zaslonu, uključujući obloge i obrube. Bez border-box
postavljenog, da biste to dobili, morate koristiti outerHeight()
u jQueryju.