घटनाओं की बड़ी संख्या के लिए यह मदद कर सकता है:
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:
अब जब कि नई भाषा सुविधाओं और अधिक व्यापक रूप आप एक सीमित सूची शामिल करना आसान बनाने सकता है उपलब्ध हैं एक श्रोता साझा करने वाली घटनाओं का।
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);
स्रोत
2012-08-07 12:17:12
ठीक है कि मदद करता है :) धन्यवाद! – coiso
चेतावनी: ईवेंट हैंडल फ़ंक्शन में अनुपलब्ध है। मैंने इस बग को ठीक किया है https://pastebin.com/raw/Lrcdv1ws – higimo