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:
$(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:
$(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:
$(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:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);