Metóda one

Metóda one umožňuje pridať obsluhu udalostí k elementu. Po tom, ako udalosť zbehne raz - obsluha bude automaticky odstránená.

Syntax

Takto pripájame obsluhu udalostí k elementu, ako prvý parameter v podade reťazca sa odovzdáva jedna alebo viacero udalostí oddelených medzerami, druhým - odovzdávame dáta v podade objektu JavaScript, ktoré sa odovzdajú do obsluhy vo vlastnosti event.data pri spustení udalosti. Druhý parameter je voliteľný. Tretím odovzdávame funkciu-obsluhu, do ktorej sa odovzdáva objekt udalosti alebo odovzdáme false:

javascript$(selektor).one(udalosti, [dáta], funkcia-obsluha(objekt udalosti));

Môžeme druhým parameterom odovzdať dodatočný filtrujúci selektor potomkov vo vnútri elementu, tretím - dodatočné dáta, ktoré sa odovzdajú do obsluhy vo vlastnosti event.data pri spustení udalosti. Druhý a tretí parameter sú voliteľné. Štvrtým odovzdávame funkciu-obsluhu, do ktorej sa odovzdáva objekt udalosti a voliteľné dodatočné parametre. Ak namiesto funkcie-obsluhy odovzdáme false, tak funkcia jednoducho vráti false:

javascript$(selektor).one(udalosti, [selektor], [dáta], funkcia-obsluha(objekt udalosti));

Môžeme využiť metódu one inak, vtedy do prvého parametra sa odovzdáva objekt JavaScript, kde kľúče - typ udalosti, a hodnoty - funkcia-obsluha, ktorú sme pridali k elementu:

javascript$(selektor).one({'typ udalosti': handler}, [selektor], [dáta]);

Ak neodovzdávame dodatočný selektor, tak udalosť sa spustí na elemente, ku ktorému sme pripojili obsluhu, inak - na elemente-potomkovi, ktorý ktorý zodpovedá tomuto selektoru (delegované udalosti).

Príklad

Po kliknutí na odsek vypíšeme dáta, ktoré sme odovzdali do metódy one. Pri následných kliknutiach sa nič diať nebude. Využijeme funkciu-obsluhu testFunc, ktorú sme vytvorili:

html<p>click</p>
javascriptfunction testFunc(event) {
  alert(event.data.text);
}

$('p').one('click', {text: 'aaa' }, testFunc);

Pozrite tiež

  • metóda on,
    ktorá umožňuje pripojiť obsluhu udalostí k elementu
  • metóda off,
    ktorá umožňuje odstrániť obsluhu udalostí u elementu
  • objekt event,
    ktorý obsahuje informácie o udalosti