Dernière mise à jour le .
- Documentation
- >
- Modules
- >
- Event
- >
- saveEvent
Event.saveEvent
Associe une fonction ou un tableau de fonction à un nom, qui pourra par la suite être utilisé
dans les fonctions de manipulations d'événements à la place de la fonction ou du tableau de fonction concernée.
Cette fonctionnalité permet de simplifier l'utilisation de fonctions entre différents contextes JavaScript et trouve sa puissance dans
sa compatibilité avec l'ensemble des méthodes proposées par Event
.
Synthaxe
Event.saveEvent(eventName1, fct1[, ..., eventNameN, fctN]);
Event.saveEvent(objt1[, ..., objtN]);
Où:
-
eventName1...eventNameN
: chaine de charactère représentant un nom qui doit être associé àfct1...fctN
. Si ce nom à déjà été utilisé, la valeur fournie supprimera la valeur existante sans signaler d'erreur. -
fct1...fctN
[]: fonction ou tableau de fonction à associer au nom défini pareventName1...eventNameN
. -
objt1...objtN
: objets dont les propriétés suivent la définition{ eventName : fct }
ou{ eventName : [fct1[, ..., fctN]] }
.
Valeur de retour
La fonction Event
est retournée.
Exemple sans Dynamique
Exemple 1: Sauvegarde d'événements
L'exemple ci-dessous associe une fonction à un nom. Il est par la suite possible d'utiliser ce nom à la place de la fonction lors de la manipulation d'événements.
Event.saveEvent("name1", function() {
console.log("Hello World !");
}, "name2", function() {
console.log("Bonjour le monde !");
});
Event.setEvent([document], "click", "name1", "name2");
Event.removeEvent([document], "click", "name1");
Event.setEvent([document.body], "click", "name1");
Le code ci-dessus et ci-dessous sont similaire.
const name1 = function() {
console.log("Hello World !");
}, name2 = function() {
console.log("Bonjour le monde !");
};
Event.setEvent([document], "click", name1, name2);
Event.removeEvent([document], "click", name1);
Event.setEvent([document.body], "click", name1);
Exemple 2: Sauvegarde de tableau d'événements
L'exemple ci-dessous associe deux fonctions à un nom. Ces fonctions seront par la suite utilisable lors de la manipulation d'événements.
Event.saveEvent("name1", [function() {
console.log("Hello World !");
}, function() {
console.log("Bonjour le monde !");
}]);
Event.setEvent([document], "click", "name1");
Event.removeEvent([document], "click", "name1");
Event.setEvent([document.body], "click", "name1");
Exemple 3: Utilisation avec la méthode setEventByName
La fonctionnalités de sauvegarde d'événement est compatible avec l'ensemble des méthodes que fourni le module Event
.
Event.saveEvent("name1", function() {
console.log("Hello World !");
});
Event.setEventByName("myName", "click", "name1");
Exemple avec Dynamique
Le code ci-dessous reprend l'exemple 2 mais avec l'utilisation de Dynamique
.
Dynamique().saveEvent("name1", [function() {
console.log("Hello World !");
}, function() {
console.log("Bonjour le monde !");
}]);
Dynamique(document).setEvent("click", "name1").removeEvent("click", "name1");
Dynamique(document.body).setEvent("click", "name1");
Limitation
Le méchanisme des fonctions sauvegardées n'est pas récursif. Ainsi il n'est pas possible d'écrire:
Event.saveEvent("name1", [function() {
console.log("Hello World !");
}, function() {
console.log("Bonjour le monde !");
}]);
Event.setEvent([document], "click", ["name1", function() {
console.log("My name is toto.");
}]);
Le code ci-dessus générera une erreur et n'est pas équivalent à:
Event.setEvent([document], "click", [function() {
console.log("Hello World !");
}, function() {
console.log("Bonjour le monde !");
}, function() {
console.log("My name is toto.");
}]);
Compatibilité
La prise en charge de DomElement.addEventListener ou l'utilisation d'un PolyFill équivalent est nécessaire. Méthode codée en EcmaScript 6.
Méthodes liées
-
Méthode deleteEvent: .
-
Méthode callEvent: .
-
Méthode getEvent: Retourne une fonction préalablement associé à un nom.