Dernière mise à jour le .
  1. Documentation
  2. >
  3. Modules
  4. >
  5. Event
  6. >
  7. 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 par eventName1...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