Envoi de l'événement avec des données
J'aimerais distribuer un événement qui permettra de transmettre certaines données à n'importe quel événement auditeurs qui écoutent sur cet événement.
Considérant une fonction qui déclenche un événement:
function click() {
const x = 'foo'
document.dispatchEvent(new CustomEvent('clicked'))
}
click()
Comment puis-je transmettre des données personnalisées à l'écouteur d'événement?
document.addEventListener('clicked', function(e) {
console.log(x) //logs "foo"
})
Vous devez vous connecter pour publier un commentaire.
Peut-être vous êtes à la recherche pour
event.detail
Au lieu de l'utilisation des données x et dans l'écouteur d'événement, vous pouvez accéder à x, à l'aide de l'événement.détail
Malheureusement
CustomEvent
fonctionne pas sur IE (Bord avant), mais vous pouvez tout simplement utiliser le normalEvent
.Il suffit de penser que aussi
Event
est un objet, et donc vous pouvez ajouter tous les attributs personnalisés dont vous avez besoin:Sur cette façon, vous pouvez vérifier votre champ personnalisé sur la fonction de rappel joned à l'événement.
NB. Pour les anciennes version de IE vous besoin de cette polyfill pour
new Event
manqué fonction: