Pour un grand nombre d'événements, cela pourrait vous aider :
var element = document.getElementById("myId");
var myEvents = "click touchstart touchend".split(" ");
var handler = function (e) {
faire quelque chose
};
for (var i=0, len = myEvents.length; i < len; i++) {
element.addEventListener(myEvents[i], handler, false);
}
Mise à jour 06/2017 :
Maintenant que de nouvelles fonctionnalités de langage sont plus largement disponibles, vous pourriez simplifier l'ajout d'une liste limitée d'événements qui partagent un écouteur.
const element = document.querySelector("#myId");
function handleEvent(e) {
// faire quelque chose
}
// Je préfère string.split car cela rend légèrement plus facile l'édition de la liste des événements
"click touchstart touchend touchmove".split(" ")
.map(name => element.addEventListener(name, handleEvent, false));
Si vous souhaitez gérer de nombreux événements et avoir des exigences différentes par écouteur, vous pouvez également passer un objet que la plupart des gens ont tendance à oublier.
const el = document.querySelector("#myId");
const eventHandler = {
// appelé pour chaque événement sur cet élément
handleEvent(evt) {
switch (evt.type) {
case "click":
case "touchstart":
// click et touchstart partagent un gestionnaire de clic
this.handleClick(e);
break;
case "touchend":
this.handleTouchend(e);
break;
default:
this.handleDefault(e);
}
},
handleClick(e) {
// faire quelque chose
},
handleTouchend(e) {
// faire quelque chose de différent
},
handleDefault(e) {
console.log("événement non géré : %s", e.type);
}
}
el.addEventListener(eventHandler);
Mise à jour 05/2019 :
const el = document.querySelector("#myId");
const eventHandler = {
handlers: {
click(e) {
// faire quelque chose
},
touchend(e) {
// faire quelque chose de différent
},
default(e) {
console.log("événement non géré : %s", e.type);
}
},
// appelé pour chaque événement sur cet élément
handleEvent(evt) {
switch (evt.type) {
case "click":
case "touchstart":
// click et touchstart partagent un gestionnaire de clic
this.handlers.click(e);
break;
case "touchend":
this.handlers.touchend(e);
break;
default:
this.handlers.default(e);
}
}
}
Object.keys(eventHandler.handlers)
.map(eventName => el.addEventListener(eventName, eventHandler))