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.

js
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