Event: cancelable Eigenschaft
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die schreibgeschützte Eigenschaft cancelable
der Event
-Schnittstelle gibt an, ob das Ereignis abgebrochen werden kann und daher verhindert werden kann, als ob das Ereignis nie stattgefunden hätte.
Wenn das Ereignis nicht abbrechbar ist, wird seine cancelable
-Eigenschaft false
sein, und der Ereignis-Listener kann das Ereignis nicht vom Auftreten abhalten.
Die meisten von Browsern nativen Ereignisse, die abgebrochen werden können, resultieren aus der Benutzerinteraktion mit der Seite. Das Abbrechen der click
-,
wheel
- oder
beforeunload
-Ereignisse würde verhindern, dass der Benutzer auf etwas klickt, die Seite mit dem Mausrad scrollt oder die Seite verlässt, jeweils.
Synthetische Ereignisse, die von anderem JavaScript-Code erstellt wurden, definieren, ob sie zum Zeitpunkt ihrer Erstellung abgebrochen werden können.
Um ein Ereignis abzubrechen, rufen Sie die Methode preventDefault()
für das Ereignis auf. Dadurch wird verhindert, dass die Implementierung die Standardaktion ausführt, die mit dem Ereignis verbunden ist.
Ereignis-Listener, die mehrere Arten von Ereignissen verarbeiten, sollten cancelable
prüfen, bevor sie ihre preventDefault()
-Methoden aufrufen.
Wert
Ein boolescher Wert, der true
ist, wenn das Ereignis abgebrochen werden kann.
Beispiel
Zum Beispiel schlagen Browserhersteller vor, dass das wheel
-Ereignis nur beim ersten Aufruf des Listeners abgebrochen werden kann — alle nachfolgenden wheel
-Ereignisse können nicht abgebrochen werden.
function preventScrollWheel(event) {
if (typeof event.cancelable !== "boolean" || event.cancelable) {
// The event can be canceled, so we do so.
event.preventDefault();
} else {
// The event cannot be canceled, so it is not safe
// to call preventDefault() on it.
console.warn(`The following event couldn't be canceled:`);
console.dir(event);
}
}
document.addEventListener("wheel", preventScrollWheel);
Spezifikationen
Specification |
---|
DOM Standard # ref-for-dom-event-cancelable② |
Browser-Kompatibilität
BCD tables only load in the browser