Metoden one
Metoden one låter dig lägga till en händelsehanterare
till ett element. Efter att händelsen har
utlösts en gång - kommer hanteraren att
tas bort automatiskt.
Syntax
Så här fäster vi en händelsehanterare till ett element,
som första parameter i form av en sträng
skickas en eller flera händelser separerade med
mellanslag, som andra - skickar vi data i form av ett JavaScript-objekt,
som skickas till hanteraren i egenskapen
event.data när händelsen utlöses. Den andra parametern
är valfri. Som tredje skickar vi hanterarfunktionen,
som ett händelseobjekt skickas till, eller så skickar vi false:
$(selektor).one(händelser, [data], hanterarfunktion(händelseobjekt));
Som andra parameter kan man skicka ett ytterligare
filtrerande selektor för avkomlingar inuti elementet,
som tredje - ytterligare data, som skickas
till hanteraren i egenskapen event.data när
händelsen utlöses. Den andra och tredje parametern
är valfria. Som fjärde skickar vi
hanterarfunktionen, som ett händelseobjekt skickas till
och valfria ytterligare parametrar. Om man istället för
hanterarfunktionen skickar false, så kommer funktionen bara
att returnera false:
$(selektor).one(händelser, [selektor], [data], hanterarfunktion(händelseobjekt));
Man kan använda metoden one på ett annat sätt,
då skickas som första parameter
ett JavaScript-objekt, där nycklar är händelsetyp, och
värden är hanterarfunktionen, som vi lade till till
elementet:
$(selektor).one({'händelsetyp': handler}, [selektor], [data]);
Om vi inte skickar en extra selektor, så utlöses händelsen på elementet som vi fäster hanteraren till, annars - på avkomlingselementet som motsvarar denna selektor (delegerade händelser).
Exempel
Låt oss vid klick på stycket visa de data som
vi skickade till metoden one. Vid efterföljande klick
kommer ingenting att hända. Vi använder
hanterarfunktionen testFunc,
som vi skapade:
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);