Метад 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);