Most már számos alkalommal beszéltünk a jQuery API apró érintéseiről, amelyek nagyon szépek. Minden jól átgondolt és kifinomult. A láncolás határozottan ebbe a kategóriába tartozik. Miután elkezdte használni és megértette, rendkívül természetes érzés, mintha nem is lehetne más út.
A fő gondolat az, hogy több metódust használjon egymás után egyetlen elemgyűjteményen.
Tegyük fel például, hogy miután rákattintottam egy gombra, osztályt, valamint szöveget akarok változtatni. De a gombon van némi HTML.
Open
A jQuery segítségével a cselekvések teljes sorozatát „láncolhatjuk” össze.
$(".button") .removeClass("open") .addClass("closed") .find(".text") .text("Closed");
Ez azért lehetséges, mert a jQuery metódusainak többsége szetterként ugyanúgy visszaad egy elemkészletet, mint amire a metódust hívták. Néha ez a halmaz pontosan megegyezik, hasonlóan a helyzethez removeClass
és addClass
itt, és néha ez a halmaz megváltozik, mint itt find
.
A példában, amellyel a videón dolgoztunk, arról is beszéltünk, hogy .end()
melyik „támasztja alá” az egyik szintet a láncban.
$(".button") .removeClass("open") // .button .addClass("closed") // .button .find(".text") // .button .text .text("Closed") // .button .text .end(); // .button .data("thing"); // GETTER on .button
Talán ez jobban megmagyarázza. Amikor az elemek halmaza megváltozik, behúztam az első sort, és megjegyeztem a változást. Aztán amikor .end()
visszalépünk egy szinttel. Ez függetlenül attól, hogy hányszor változtatja meg a választást. Az egész akkor ér véget, ha olyan módszert használ, amely az elemek halmazától eltérő valamit ad vissza.