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