Metode one
Metode one ļauj pievienot notikumu
apstrādes funkciju elementam. Pēc tam, kad notikums
izpildīsies vienreiz - apstrādes funkcija tiks
automātiski noņemta.
Sintakse
Šādi mēs pievienojam notikumu apstrādes funkciju elementam,
kā pirmais parametrs virknes veidā
tiek padots viens vai vairāki notikumi, atdalīti
ar atstarpēm, otrais - mēs padodam datus JavaScript objekta veidā,
kas tiek nodoti apstrādes funkcijā īpašībā
event.data, notikuma izpildes brīdī. Otrais parametrs
nav obligāts. Trešo mēs padodam apstrādes funkciju,
kurai tiek nodots notikuma objekts, vai arī padodam false:
$(selektors).one(notikumi, [dati], apstrādes-funkcija(notikuma objekts));
Kā otro parametru var padot papildu
filtrējošu selektoru elementa iekšējiem pēctečiem,
kā trešo - papildu datus, kas tiek nodoti
apstrādes funkcijā īpašībā event.data
notikuma izpildes brīdī. Otrais un trešais parametri
nav obligāti. Ceturtā mēs padodam
apstrādes funkciju, kurai tiek nodots notikuma objekts
un neobligātie papildu parametri. Ja apstrādes funkcijas vietā
tiek padots false, tad funkcija vienkārši
atgriezīs false:
$(selektors).one(notikumi, [selektors], [dati], apstrādes-funkcija(notikuma objekts));
Var izmantot metodi one citādi,
tad pirmajā parametrā tiek padots
JavaScript objekts, kur atslēgas - notikuma veids, bet
vērtības - apstrādes funkcija, ko mēs pievienojām
elementam:
$(selektors).one({'notikuma veids': handler}, [selektors], [dati]);
Ja mēs nepadodam papildu selektoru, tad notikums tiek izpildīts uz elementa, kuram mēs pievienojām apstrādes funkciju, pretējā gadījumā - uz pēcteča elementa, kas atbilst šim selektoram (deleģētie notikumi).
Piemērs
Noklikšķinot uz rindkopas, izvadīsim datus, kurus
mēs padodām metodē one. Pie turpmājiem klikšķiem
nekas nenotiks. Izmantosim
apstrādes funkciju testFunc,
ko mēs izveidojām:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);