Metoden one
Metoden one gør det muligt at tilføje en håndtering
af hændelser til et element. Efter at hændelsen
er udløst én gang - vil håndteringen blive
automatisk fjernet.
Syntaks
Sådan tilknytter vi en hændelseshåndtering til et element,
som første parameter i form af en streng
overføres en eller flere hændelser adskilt af
mellemrum, som andet - overfører vi data i form af et JavaScript-objekt,
som overføres til håndteringen i egenskaben
event.data ved udløsning af hændelsen. Den anden parameter
er valgfri. Som tredje overfører vi håndteringsfunktionen,
som objektet hændelsen overføres til, eller vi overfører false:
$(selector).one(events, [data], handler-function(event object));
Det er muligt som anden parameter at overføre et yderligere
filtrerende selektor for efterkommere inde i elementet,
som tredje - yderligere data, som overføres
til håndteringen i egenskaben event.data ved
udløsning af hændelsen. Anden og tredje parameter
er valgfrie. Som fjerde overfører vi
håndteringsfunktionen, som objektet hændelsen overføres til
og valgfrie yderligere parametre. Hvis i stedet for
håndteringsfunktionen der overføres false, så returnerer funktionen bare
false:
$(selector).one(events, [selector], [data], handler-function(event object));
Det er muligt at bruge metoden one på en anden måde,
så overføres som den første parameter
et JavaScript-objekt, hvor nøglerne er hændelsestype, og
værdierne er håndteringsfunktionen, som vi tilføjede til
elementet:
$(selector).one({'event type': handler}, [selector], [data]);
Hvis vi ikke overfører en yderligere selektor, så udløses hændelsen på elementet, som vi tilknytter håndteringen til, ellers - på efterkommer-elementet, som matcher denne selektor (delegerede hændelser).
Eksempel
Lad os ved klik på afsnittet udskrive dataene, som
vi overførte til metoden one. Ved efterfølgende klik
vil der ikke ske noget. Lad os bruge
håndteringsfunktionen testFunc,
som vi oprettede:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);