5.7.2 Les méthodes associées aux événements
5.7.2.1 addEventListener
Cette méthode permet de charger un écouteur dans le widget de document. Une fois l'événement chargé, il est valide durant toute la vie du widget document.
Un évènement n'est pas déchargé automatiquement lors du changement d'état du widget document (changement de document, d'étape, etc.).
5.7.2.1.1 Arguments
type
- type de l'événement à suivre. Voir les types d'événements déclenchés par * le document, * les attributs, * les changements d'état, * les événements personnalisés
-
options
(object) -
il contient les champs suivants :
-
documentCheck
(function javascript, facultatif) - Cette fonction permet d'indiquer pour quel type de document s'applique l'écouteur.
Elle reçoit en entrée un objet document décrivant le document courant.
Elle doit retourner
true
pour indiquer que l'écouteur' est applicable pour ce type de document. Par défaut l'écouteur s'applique pour tous les documents. -
name
(string, facultative) -
nom de l'écouteur. Ce nom est utilisé pour identifier l'écouteur et le supprimer. Le nom peut posséder un namespace. Par défaut un nom est calculé automatiquement.
lorsque le nom correspond à un écouteur déjà enregistré sur ce widget, le nouvel écouteur remplace l'ancien, qui ne seron donc plus déclenché.
-
once
(booléen, facultatif) - si once est à
true
, l'écouteur n'est appliqué qu'une seule fois et ensuite supprimé.
-
-
callback
(function javascript) -
cette fonction est appelée lorsque l'événement type est émis. Elle reçoit les paramètres suivants :
event
- objet événement standard de jQuery,
documentObject
- un objet document décrivant le document courant.
-
attribute
(uniquement sur les événements concernant les attributs) - un objet attribut.
-
values
(uniquement sur les événement concernant les attributs) -
objet décrivant la valeur de l'attribut en cours, il contient trois propriétés :
current
- valeur courante de l'attribut,
previous
- valeur précédente de l'attribut,
initial
- valeur de l'attribut au chargement du document
5.7.2.1.2 Retour
Le nom de l'événement est retourné.
5.7.2.1.3 Exception
Pas d'exception
5.7.2.1.4 Exemples
Ajout d'un écouteur s'appliquant uniquement sur le changement des attributs de la famille ANIMAL
.
window.dcp.document.documentController("addEventListener", "change", { "name": "alertChange.animal", "documentCheck": function(documentObject) { return documentObject.family.name === "ANIMAL" } }, function(event, documentObject, attribute, value) { alert(value.currentValue); } );
Ajout d'un écouteur s'appliquant uniquement sur les messages de la famille ANIMAL
et annulant les événements reçus.
window.dcp.document.documentController("addEventListener", "displayMessage", { "name": "preventMessages.animal", "documentCheck": function(documentObject) { return documentObject.family.name === "ANIMAL" } }, function(event, documentObject, message) { event.preventDefault(); } );
5.7.2.2 listEventListeners
Cette méthode permet de lister les écouteurs attachés au widget. La liste retournée ne préjuge pas de si les événements sont actifs ou pas sur le document en cours.
5.7.2.2.1 Arguments
Pas d'argument
5.7.2.2.2 Retour
Tableau d'écouteurs
5.7.2.2.3 Exception
Pas d'exception
5.7.2.2.4 Exemples
window.dcp.document.documentController("listEventListeners");
retourne
[{ "documentCheck" : function(document) {...}, "eventCallback": function(event, document, data) {...}, "eventType" : "change", "name" : "alertChange.animal" },{ "documentCheck" : function(document) {...}, "eventCallback": function(event, document, data) {...}, "eventType" : "displayMessage", "name" : "preventMessages.animal" }]
5.7.2.3 removeEventListener
Cette méthode permet de supprimer un écouteur ou un ensemble d'écouteurs sur le widget en cours.
5.7.2.3.1 Arguments
-
nom
(string) - nom de l'événement ou namespace des événements à supprimer.
5.7.2.3.2 Retour
Le ou les écouteur(s) supprimé(s).
5.7.2.3.3 Exception
Pas d'exception.
5.7.2.3.4 Exemple
Suppression des événements ayant le namespace animal
.
window.dcp.document.documentController("removeEventListener", ".animal");
Retourne
[{ documentCheck: function (document) { return document.family.name === "ANIMAL"}, attributeCheck: function (attribute, documentObject) { return attribute.id = "animal_date"}, constraintCheck: function (document, attribute, response) {... }]