One metodi
one metodi elementa ýagdaýy gaýtadan işleýji funksiýany
goşmaga mümkinçilik berýär. Ýagdaý bir gezek işlenenden soň -
gaýtadan işleýji funksiýa awtomatik ýok ediler.
Sintaksis
Biz elementa ýagdaýy gaýtadan işleýji funksiýany şeýle birikdirýäris,
birinji parametr hökmünde setir görnüşinde bir ýa-da birnäçe boşluk bilen
bölünen ýagdaýlar geçirilýär, ikinjisi - JavaScript obyekti görnüşinde maglumat
geçirilýär, olar ýagdaý işlenende event.data häsyyatyna gaýtadan işleýji
funksiýa geçirilýär. Ikinji parametr hökmany däl. Üçünjüsi bolsa funksiýa-gaýtadan
işleýji geçirilýär, ona ýagdaý obyekti geçirilýär ýa-da false geçirilýär:
$(selektor).one(ýagdaýlar, [maglumat], funksiýa-gaýtadan_işleýji(ýagdaý obýekti));
Ikinji parametr hökmünde element içindäki mirasçylary süzüjilik edýän goşmaça
selektor geçirip bolýar, üçünjisi - ýagdaý işlenende event.data häsyyatyna
gaýtadan işleýji funksiýa geçirilýän goşmaça maglumatlar geçirilýär. Ikinji we üçünji
parametrler hökmany däl. Dördünjisi bolsa funksiýa-gaýtadan işleýji geçirilýär, ona
ýagdaý obýekti we hökmany däl goşmaça parametrler geçirilýär. Eger funksiýa-gaýtadan
işleýji ýerine false geçirilse, onda funksiýa diňe false gaýtarar:
$(selektor).one(ýagdaýlar, [selektor], [maglumat], funksiýa-gaýtadan_işleýji(ýagdaý obýekti));
one metodyna başga ýol bilen hem ýüz tutup bolýar,
onda birinji parametr hökmünde JavaScript obýekti geçirilýär, ýeri düwünleri -
ýagdaýyň görnüşi, bahalary bolsa elemente goşan funksiýa-gaýtadan işleýjimiz:
$(selektor).one({'ýagdaýyň görnüşi': handler}, [selektor], [maglumat]);
Eger biz goşmaça selektor geçirmesek, onda ýagdaý, gaýtadan işleýjini birikdirýän elementimizde işlenýär, ýok bolsa - şu selektora gabat gelýän mirasçy elementde işlenýär (wekalatly ýagdaýlar).
Mysal
Absaza basylanda, biz one metodyna geçiren maglumatlary çykaryş etdirmeli.
Indiki basylyşlarda hiç zat bolmaz. Biz döreden
testFunc funksiýa-gaýtadan işleýjimizden peýdalanyň:
<p>bas</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);