# 14: Vlastné udalosti - Triky CSS

Anonim

Pretože sme práve hovorili o udalostiach, teraz je vhodný čas spomenúť vlastné udalosti. Všetky udalosti, o ktorých sme doteraz hovorili, sú takpovediac „skutočné“ udalosti. Udalosti, ktoré vznikajú v DOM na základe skutočných vecí, ktoré sa stanú, ako napríklad kliknutie alebo stlačenie klávesu. Tieto udalosti môžu byť v jQuery umelo „spustené“. Napríklad na „falošné“ kliknutie na tlačidlo môžete:

$("#some-button").trigger("click");

Potom sa všetky manipulátory kliknutí viazané na toto tlačidlo spustia, akoby používateľ na dané tlačidlo skutočne klikol. Ale čo keby sme to urobili:

$("#some-button").trigger("dance");

Čo sa potom stane? „Tanec“ nie je „skutočnou“ udalosťou. Žiadna chyba však nebude vrhnutá. Stáva sa to tak, že na toto tlačidlo pravdepodobne nie sú viazaní žiadni „taneční“ manipulátori. Ale mohlo by to byť a v podstate to je vlastná udalosť. Akcia s názvom, ktorý si len vymyslíte.

Prečo by si to robil? Väčšinou z organizačných dôvodov. Možno by ste chceli oddeliť svoj JavaScript, ktorý spracováva udalosti a akcie, a váš JavaScript, ktorý spracováva dáta a administratívu. To je veľmi rozumné. Ak by toto tlačidlo bolo možno tlačidlom „Uložiť nastavenia“, môžete jednoducho vypáliť vlastnú udalosť s názvom „uložiť nastavenia“ a inde mať obslužný program, ktorý čaká na spustenie tejto udalosti a vykoná skutočné uloženie údajov. To je v podstate to, čo sme urobili v príklade z videa.

Ďalším prípadom použitia vlastných udalostí je tvorba všeobecných komponentov používateľského rozhrania. Hovorím o tom v tomto blogovom príspevku.

Možno vytvárate akordeónový efekt ako súčasť používateľského rozhrania. Akordeón robí to, čo všetky akordeóny, otvára a zatvára panely po kliknutí / klepnutí. Vaša súčasť používateľského rozhrania to robí veľmi pekne. Teraz môže vývojár, ktorý používa túto harmoniku, mať špeciálne a jedinečné veci, s ktorými sa chce stať. Povedzme, že používajú akordeón na nastavenie účtu, a keď používateľ zatvorí panel, bude chcieť uložiť údaje z prvkov formulára na danom paneli. Autorom tohto komponentu akordeónového používateľského rozhrania môže byť tradičný model, ktorý ponúkne funkcie spätného volania, keď k tejto akcii dôjde. Keď inicializujete harmoniku, odovzdáte funkcie spätného volania, ktoré chcete volať, keď sa tieto veci stanú. To je jedna cesta, po ktorej treba ísť dole. Ďalšou cestou by bolo, aby akordeón iba automaticky vypálil vlastné udalosti pre všetky príslušné akcie, ktoré robí.Keď sa tento panel zatvorí, môže vystreliť apanelClosedudalosť na samotnom akordeónovom prvku. Potom by sa vývojári, ktorí s ním pracujú, mohli len viazať na tieto udalosti. Je to len ďalšia cesta, po ktorej sa môžete vydať z organizačných dôvodov, ktoré môžu byť celkom elegantné.