Metod one
Metod one omogućava dodavanje rukovaoca
događajima elementu. Nakon što se događaj
jednom izvrši - rukovalac će biti
automatski uklonjen.
Sintaksa
Ovako prikačujemo rukovaoca događajima elementu,
kao prvi parametar u vidu stringa
prosleđuje se jedan ili više događaja razdvojenih
razmakom, drugim - prosleđujemo podatke u vidu JavaScript objekta,
koji se prosleđuju u rukovaoc u svojstvu
event.data pri okidanju događaja. Drugi parametar
je opcioni. Trećim prosleđujemo funkciju-rukovioca,
u koju se prosleđuje objekat događaja ili prosleđujemo false:
$(selektor).one(događaji, [podaci], funkcija-rukovalac(objekat događaja));
Može se drugim parametrom proslediti dodatni
filtrirajući selektor potomaka unutar elementa,
trećim - dodatni podaci, koji se prosleđuju
u rukovaoc u svojstvu event.data pri
okidanju događaja. Drugi i treći parametri
su opcioni. Četvrtim prosleđujemo
funkciju-rukovioca, u koju se prosleđuje objekat događaja
i opcioni dodatni parametri. Ako umesto
funkcije-rukovioca prosledimo false, onda funkcija jednostavno
vraća false:
$(selektor).one(događaji, [selektor], [podaci], funkcija-rukovalac(objekat događaja));
Možemo iskoristiti metod one na drugi način,
onda se u prvi parametar prosleđuje
JavaScript objekat, gde su ključevi - tip događaja, a
vrednosti - funkcija-rukovalac, koju smo dodali
elementu:
$(selektor).one({'tip događaja': handler}, [selektor], [podaci]);
Ako ne prosledimo dodatni selektor, onda se događaj okida na elementu, kome smo prikačili rukovaoca, u suprotnom - na elementu-potomku, koji odgovara tom selektoru (delegirani događaji).
Primer
Hajde da pri kliku na paragraf ispišemo podatke, koje
smo prosledili u metod one. Pri narednim klikovima
ništa se neće dešavati. Iskoristićemo
funkciju-rukovioca testFunc,
koju smo kreirali:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);