Метод one
Метод one омогућава додавање руковаоца
догађаја за елемент. Након што се догађај
изврши једанпут - руковалац ће бити
аутоматски уклоњен.
Синтакса
Овако прикачимо руковаоца догађаја за елемент,
као први параметар у виду низа преноси се
један или више догађаја раздвојених
размацима, други - преносимо податке у облику JavaScript објекта,
који се прослеђују руковаоцу у својству
event.data приликом окидања догађаја. Други параметар
је опциони. Трећим прослеђујемо функцију-руковаоца,
у коју се прослеђује објекат догађаја или проследимо false:
$(селектор).one(догађаји, [подаци], функција-руковалац(објекат догађаја));
Може се другим параметром проследити додатни
филтрирајући селектор потомака унутар елемента,
трећим - додатни подаци, који се прослеђују
руковаоцу у својству event.data при
окидању догађаја. Други и трећи параметар
су опциони. Четвртим прослеђујемо
функцију-руковаоца, у коју се прослеђује објекат догађаја
и опциони додатни параметри. Ако уместо
функције-руковаоца проследимо false, онда функција једноставно
врати false:
$(селектор).one(догађаји, [селектор], [подаци], функција-руковалац(објекат догађаја));
Може се искористити метод one на други начин,
онда у први параметар се прослеђује
JavaScript објекат, где су кључеви - тип догађаја, а
вредности - функција-руковалац, коју смо додали
елементу:
$(селектор).one({'тип догађаја': handler}, [селектор], [подаци]);
Ако не проследимо додатни селектор, онда се догађај окида на елементу, за који смо прикачили руковаоца, у супротном - на елементу-потомку, који одговара том селектору (делегирани догађаји).
Пример
Хајде да при клику на пасус испишемо податке, које
смо проследили методу one. При наредним кликовима
ништа се неће дешавати. Искористимо
функцију-руковаоца testFunc,
коју смо креирали:
<p>кликни</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);