Metoden one
Metoden one lar deg legge til en hendelseshåndterer
til et element. Etter at hendelsen
har utløst én gang - vil håndtereren
bli fjernet automatisk.
Syntaks
Slik fester vi en hendelseshåndterer til et element,
som første parameter i form av en streng
overføres én eller flere hendelser separert med
mellomrom, som andre - overfører vi data i form av et JavaScript-objekt,
som overføres til håndtereren i egenskapen
event.data når hendelsen utløses. Den andre parameteren
er valgfri. Som tredje overfører vi håndteringsfunksjonen,
som objektet for hendelsen overføres til, eller vi overfører false:
$(selector).one(events, [data], handler(event object));
Man kan som andre parameter overføre et ekstra
filtrerende selektor for etterkommere inne i elementet,
som tredje - tilleggsdata, som overføres
til håndtereren i egenskapen event.data når
hendelsen utløses. Den andre og tredje parameteren
er valgfrie. Som fjerde overfører vi
håndteringsfunksjonen, som objektet for hendelsen overføres til
og valgfrie tilleggsparametere. Hvis man i stedet for
håndteringsfunksjonen overfører false, vil funksjonen bare
returnere false:
$(selector).one(events, [selector], [data], handler(event object));
Man kan bruke metoden one på en annen måte,
da overføres i den første parameteren
et JavaScript-objekt, hvor nøkler er hendelsestype, og
verdier er håndteringsfunksjonen, som vi la til
elementet:
$(selector).one({'event type': handler}, [selector], [data]);
Hvis vi ikke overfører ekstra selektor, utløses hendelsen på elementet som vi fester håndtereren til, ellers - på etterkommerelementet som matcher denne selektoren (delegerte hendelser).
Eksempel
La oss ved klikk på avsnittet vise dataene som
vi overførte til metoden one. Ved påfølgende klikk
vil ingenting skje. La oss bruke
håndteringsfunksjonen testFunc,
som vi opprettet:
<p>klikk</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);