one әдісі
one әдісі элементке оқиғалар өңдеушісін
қосуға мүмкіндік береді. Оқиға бір рет орындалғаннан
кейін - өңдеуші автоматты түрде жойылады.
Синтаксис
Біз элементке оқиғалар өңдеушісін осылай бекітеміз,
бірінші параметр ретінде жол түрінде бір немесе
бірнеше оқиға бос орындармен бөлініп беріледі,
екіншісі - JavaScript нысаны түріндегі деректерді береміз,
олар оқиға іске қосылған кезде өңдеушіге
event.data қасиетінде беріледі. Екінші параметр
міндетті емес. Үшіншісі өңдеуші функциясын береміз,
оған оқиға нысаны беріледі немесе false береміз:
$(селектор).one(оқиғалар, [деректер], өңдеуші-функциясы(оқиға нысаны));
Екінші параметр ретінде элемент ішіндегі
сүзгілеуші ішкі селекторды қосымша бере аламыз,
үшіншісі - қосымша деректерді береміз, олар
оқиға іске қосылған кезде өңдеушіге event.data
қасиетінде беріледі. Екінші және үшінші параметрлер
міндетті емес. Төртіншісі өңдеуші-функциясын береміз,
оған оқиға нысаны және міндетті емес қосымша параметрлер
беріледі. Егер өңдеуші-функциясы орнына
false берсек, онда функция жай ғана
false қайтарады:
$(селектор).one(оқиғалар, [селектор], [деректер], өңдеуші-функциясы(оқиға нысаны));
one әдісін басқаша пайдалануға болады,
онда бірінші параметр ретінде
JavaScript нысаны беріледі, онда кілттер - оқиға түрі, ал
мәндер - біз элементке қосқан өңдеуші-функциясы:
$(селектор).one({'оқиға түрі': handler}, [селектор], [деректер]);
Егер біз қосымша селекторды бермесек, онда оқиға біз өңдеушіні бекіткен элементте іске қосылады, әйтпесе - сол селекторға сәйкес келетін ішкі элементте іске қосылады (делегацияланған оқиғалар).
Мысал
Абзацқа шерту кезінде біз one әдісіне
берген деректерімізді шығарайық. Келесі шертулерде
ештеңе болмайды. Біз жасаған
testFunc өңдеуші-функциясын пайдаланайық:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);