を助けるかもしれない:
var element = document.getElementById("myId");
var myEvents = "click touchstart touchend".split(" ");
var handler = function (e) {
do something
};
for (var i=0, len = myEvents.length; i < len; i++) {
element.addEventListener(myEvents[i], handler, false);
}
更新06/2017:今すぐ
その新しい言語機能を使用すると、制限されたリストを追加簡素化することができ、より広く利用されています1つのリスナーを共有するイベントの
const element = document.querySelector("#myId");
function handleEvent(e) {
// do something
}
// I prefer string.split because it makes editing the event list slightly easier
"click touchstart touchend touchmove".split(" ")
.map(name => element.addEventListener(name, handleEvent, false));
あなたがイベントの多くを処理し、ほとんどの人が忘れがちどのpass an objectもすることができます、リスナーごとに異なる要件を持っているしたい場合。
const el = document.querySelector("#myId");
const eventHandler = {
// called for each event on this element
handleEvent(evt) {
switch (evt.type) {
case "click":
case "touchstart":
// click and touchstart share click handler
this.handleClick(e);
break;
case "touchend":
this.handleTouchend(e);
break;
default:
this.handleDefault(e);
}
},
handleClick(e) {
// do something
},
handleTouchend(e) {
// do something different
},
handleDefault(e) {
console.log("unhandled event: %s", e.type);
}
}
el.addEventListener(eventHandler);
それは助けます:)ありがとう! – coiso
警告:イベントはハンドル機能では使用できません。私はこのバグを修正しましたhttps://pastebin.com/raw/Lrcdv1ws – higimo