Méthode one
La méthode one permet d'ajouter un gestionnaire
d'événements à un élément. Après que l'événement
a été traité une fois - le gestionnaire sera
automatiquement supprimé.
Syntaxe
Ainsi, nous attachons un gestionnaire d'événements à un élément,
en premier paramètre, sous forme de chaîne de caractères,
est transmis un ou plusieurs événements séparés par
des espaces, en deuxième - nous transmettons des données sous forme d'objet JavaScript,
qui sont transmises au gestionnaire dans la propriété
event.data lors du déclenchement de l'événement. Le deuxième paramètre
est optionnel. En troisième, nous transmettons la fonction gestionnaire,
à laquelle l'objet événement est transmis, ou nous transmettons false :
$(sélecteur).one(événements, [données], fonction-gestionnaire(objet événement));
Il est possible de transmettre en deuxième paramètre un sélecteur
de filtrage supplémentaire pour les descendants à l'intérieur de l'lément,
en troisième - des données supplémentaires, qui sont transmises
au gestionnaire dans la propriété event.data lors
du déclenchement de l'événement. Les deuxième et troisième paramètres
sont optionnels. En quatrième, nous transmettons
la fonction gestionnaire, à laquelle l'objet événement est transmis
ainsi que des paramètres supplémentaires optionnels. Si, au lieu
de la fonction gestionnaire, on transmet false, alors la fonction
retournera simplement false :
$(sélecteur).one(événements, [sélecteur], [données], fonction-gestionnaire(objet événement));
Il est possible d'utiliser la méthode one différemment,
alors le premier paramètre est un
objet JavaScript, où les clés sont le type d'événement, et
les valeurs sont la fonction gestionnaire que nous avons ajoutée à
l'élément :
$(sélecteur).one({'type événement': handler}, [sélecteur], [données]);
Si nous ne transmettons pas de sélecteur supplémentaire, l'événement se déclenche sur l'élément auquel nous attachons le gestionnaire, sinon - sur l'élément descendant qui correspond à ce sélecteur (événements délégués).
Exemple
Lorsqu'on clique sur le paragraphe, affichons les données que
nous avons transmises à la méthode one. Lors des clics suivants,
rien ne se passera. Utilisons la
fonction gestionnaire testFunc,
que nous avons créée :
<p>click</p>
function testFunc(event) {
alert(event.data.text);
}
$('p').one('click', {text: 'aaa' }, testFunc);