Signatur
Beschreibung
Die Eigenschaft Event.type enthält den Namen des Ereignisses. Der Wert wird beim Erzeugen des Events festgelegt: Bei Browser-Ereignissen setzt ihn der Browser, bei eigenen Events der erste Parameter des Konstruktors (z. B. new Event("speichern")). Es ist derselbe String, den man an addEventListener() übergibt.
Am nützlichsten ist type, wenn ein einzelner Handler mehrere Ereignistypen verarbeitet. Ein Beispiel ist eine gemeinsame Funktion für mouseenter und mouseleave oder für focus und blur. Mit event.type lässt sich dann innerhalb des Handlers verzweigen, statt mehrere fast gleiche Funktionen zu schreiben. Auch beim Protokollieren oder Debuggen von Ereignissen ist die Eigenschaft hilfreich.
Der Wert ist schreibgeschützt. Eine Zuweisung wird im nicht-strikten Modus stillschweigend ignoriert. Im strikten Modus wirft sie einen TypeError, weil nur ein Getter existiert. Ereignisnamen unterscheiden Groß- und Kleinschreibung: "Click" ist nicht dasselbe wie "click".
Rückgabewert
"click", "input", "submit" oder ein selbst gewählter Name bei CustomEvent. Bei einem Event, das mit einem leeren String erzeugt wurde, ist der Wert "".Beispiele
Ein Handler für mehrere Ereignistypen
const box = document.querySelector('#box');
const handleHover = (event) => {
// Anhand des Typs unterscheiden
if (event.type === 'mouseenter') {
box.classList.add('aktiv');
} else if (event.type === 'mouseleave') {
box.classList.remove('aktiv');
}
console.log(`Ereignis: ${event.type}`);
};
box.addEventListener('mouseenter', handleHover);
box.addEventListener('mouseleave', handleHover);
Typ eines eigenen CustomEvent auslesen
const target = new EventTarget();
target.addEventListener('warenkorb:aktualisiert', (event) => {
console.log(event.type, event.detail.anzahl);
});
target.dispatchEvent(
new CustomEvent('warenkorb:aktualisiert', { detail: { anzahl: 3 } })
);
Ereignis-Logger mit Nachschlagetabelle
const input = document.querySelector('input');
const aktionen = {
focus: () => console.log('Feld aktiv'),
blur: () => console.log('Feld verlassen'),
input: (e) => console.log('Neuer Wert:', e.target.value),
};
const logger = (event) => aktionen[event.type]?.(event);
Object.keys(aktionen).forEach((typ) => input.addEventListener(typ, logger));
// Später wieder entfernen
const aufraeumen = () =>
Object.keys(aktionen).forEach((typ) => input.removeEventListener(typ, logger));
type ist schreibgeschützt
'use strict';
const ev = new Event('laden');
try {
ev.type = 'anders';
} catch (err) {
console.log(err instanceof TypeError); // true
}
console.log(ev.type);
// Wichtig · Fallstricke
- Groß- und Kleinschreibung: Ereignistypen werden exakt verglichen. Wenn Sie auf
"Click"lauschen, reagiert der Listener nie auf echte Klicks. Eingebaute Events sind immer kleingeschrieben. - Ohne Präfix „on“:
event.typeenthält nie das Präfix der Handler-Eigenschaft. Beionclickist der Wert"click". - Nicht änderbar: Sie können den Typ nicht nachträglich umschreiben. Wenn Sie ein Ereignis mit einem anderen Namen weiterleiten wollen, erzeugen Sie ein neues Event, z. B.
new CustomEvent(neuerTyp, { detail }). - Veraltetes
initEvent(): Das altedocument.createEvent()zusammen mitinitEvent(type, ...)ist veraltet. Verwenden Sie stattdessen die Konstruktorennew Event()bzw.new CustomEvent(). - Kompatibilität: Wird von allen Browsern unterstützt, auch von sehr alten.
EventTargetundEventsind außerdem in Web Workers und in Node.js ab Version 15 verfügbar.