Methode one
De methode one maakt het mogelijk om een gebeurtenisafhandelaar
aan een element toe te voegen. Nadat de gebeurtenis
één keer is uitgevoerd - wordt de afhandelaar
automatisch verwijderd.
Syntaxis
Zo koppelen we een gebeurtenisafhandelaar aan een element,
als eerste parameter wordt in de vorm van een string
één of meerdere gebeurtenissen doorgegeven, gescheiden door
spaties, als tweede - geven we gegevens door in de vorm van een JavaScript-object,
die worden doorgegeven aan de afhandelaar in de eigenschap
event.data bij het activeren van de gebeurtenis. De tweede parameter
is optioneel. Als derde geven we de afhandelingsfunctie door,
waarin het gebeurtenisobject wordt doorgegeven, of we geven false door:
$(selector).one(gebeurtenissen, [gegevens], afhandelingsfunctie(gebeurtenisobject));
Het is mogelijk om als tweede parameter een aanvullende
filterende selector van afstammende elementen binnen het element door te geven,
als derde - aanvullende gegevens, die worden doorgegeven
aan de afhandelaar in de eigenschap event.data bij
het activeren van de gebeurtenis. De tweede en derde parameter
zijn optioneel. Als vierde geven we
de afhandelingsfunctie door, waarin het gebeurtenisobject wordt doorgegeven
en optionele aanvullende parameters. Als in plaats van
de afhandelingsfunctie false wordt doorgegeven, dan retourneert de functie simpelweg
false:
$(selector).one(gebeurtenissen, [selector], [gegevens], afhandelingsfunctie(gebeurtenisobject));
Het is mogelijk om de methode one op een andere manier te gebruiken,
dan wordt in de eerste parameter een
JavaScript-object doorgegeven, waar sleutels - het gebeurtenistype zijn, en
waarden - de afhandelingsfunctie, die we aan het
element hebben toegevoegd:
$(selector).one({'gebeurtenistype': handler}, [selector], [gegevens]);
Als we geen aanvullende selector doorgeven, dan activeert de gebeurtenis op het element waaraan we de afhandelaar koppelen, anders - op het afstammende element, dat overeenkomt met deze selector (gedelegeerde gebeurtenissen).
Voorbeeld
Laten we bij een klik op de paragraaf de gegevens tonen, die
we hebben doorgegeven aan de methode one. Bij volgende klikken
erft er niets meer. Laten we gebruik maken van de
afhandelingsfunctie testFunc,
die we hebben aangemaakt:
<p>klik</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);