Metodas one
Metodas one leidžia pridėti įvykių
apdorojimo funkciją prie elemento. Po to, kai įvykis
suveiks vieną kartą - apdorojimo funkcija bus
automatiškai pašalinta.
Sintaksė
Taip mes pririšame įvykių apdorojimo funkciją prie elemento,
kaip pirmas parametras perduodamas vienas ar keli įvykiai atskirti
tarpais,
antruoju - perduodami duomenys JavaScript objekto pavidalu,
kurie perduodami apdorojimo funkcijai savybėje
event.data įvykio suveikimo metu. Antrasis parametras
neprivalomas. Trečiuoju perduodame funkciją-apdorojimo funkciją,
į kurią perduodamas įvykio objektas arba perduodame false:
$(selektorius).one(įvykiai, [duomenys], funkcija-apdorojimo funkcija(įvykio objektas));
Galima antruoju parametru perduoti papildomą
filtruojantį palikuonių selektorių elemento viduje,
trečiuoju - papildomus duomenis, kurie perduodami
apdorojimo funkcijai savybėje event.data
įvykio suveikimo metu. Antrasis ir trečiasis parametrai
neprivalomi. Ketvirtuoju perduodame
funkciją-apdorojimo funkciją, į kurią perduodamas įvykio objektas
ir neprivalomi papildomi parametrai. Jei vietoj
funkcijos-apdorojimo funkcijos perduosime false, tai funkcija tiesiog
grąžins false:
$(selektorius).one(įvykiai, [selektorius], [duomenys], funkcija-apdorojimo funkcija(įvykio objektas));
Galima pasinaudoti metodu one kitu būdu,
tada pirmuoju parametru perduodamas
JavaScript objektas, kur raktai - įvykio tipas, o
reikšmės - funkcija-apdorojimo funkcija, kurią mes pridėjome prie
elemento:
$(selektorius).one({'įvykio tipas': handler}, [selektorius], [duomenys]);
Jei mes neperduodame papildomo selektoriaus, tai įvykis suveikia ant elemento, prie kurio mes pririšome apdorojimo funkciją, priešingu atveju - ant palikuonio elemento, kuris atitinka tą selektorių (deleguoti įvykiai).
Pavyzdys
Spustelėjus ant pastraipos išveskime duomenis, kuriuos
mes perdavėme į metodą one. Vėlesniais spustelėjimais
nieko neįvyks. Panaudokime
funkciją-apdorojimo funkciją testFunc,
kurią mes sukūrėme:
<p>spustelėk</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);