aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/event/cancelable/index.md
blob: a7df8f75a2889047b74c2d92170bf92110470a93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---
title: Event.cancelable
slug: Web/API/Event/cancelable
tags:
  - API
  - Annulable
  - DOM
  - Propriétés
  - évènements
translation_of: Web/API/Event/cancelable
---
{{ ApiRef("DOM") }}

La propriété _`cancelable`_ (_annulable_) de "Event" Indique si l'événement peut être annulé et donc empêché, comme si l'événement ne s'était jamais produit. Si l'événement n'est pas annulable, alors sa propriété `cancelable` est à `false` (_faux_) et l'écouteur d'événement ne peut pas l'arrêter.

L'appel de {{domxref("event.preventDefault", "preventDefault()")}} sur un évènement qui ne peut être annulé produit une erreur, aussi les écouteurs d'évènement qui gèrent de nombreux types d'évènements peuvent être vérifiés avec `cancelable` avant d'appeler leurs méthodes `preventDefault()`.

La plupart des événements natifs du navigateur qui peuvent être annulés sont ceux qui résultent de l'interaction de l'utilisateur avec la page. L'annulation des événements [click](/fr/docs/Web/Events/click), [scroll](/fr/docs/Web/Events/scroll) ou [beforeunload](/fr/docs/Web/Events/beforeunload) empêcherait l'utilisateur de cliquer sur un élément, de faire défiler la page ou de la quitter, respectivement.

## Syntaxe

    bool = event.cancelable

- Le résultat est un `booléen` qui est `true` (_vrai_) si l'événement peut être annulé.

## Exemple

Par exemple, les vendeurs de navigateurs proposent que l'évènement [`wheel`](/fr/docs/Web/API/Document/wheel_event) puisse être annulable seulement [la première fois que l'écouteur est appelé (ressource en anglais)](https://github.com/WICG/interventions/issues/33) ; les évènements `wheel` suivants ne peuvent être annulés.

```js
function preventScrollWheel(event) {
  if (typeof event.cancelable !== 'boolean' || event.cancelable) {
    // L'événement peut être annulé, alors nous le faisons.
    event.preventDefault();
  } else {
    // L'évènement ne peut pas être annulé, il n'est donc pas sûr
    // d'appeler preventDefault() sur lui.
    console.warn(`The following event couldn't be canceled:`);
    console.dir(event);
  }
}

document.addEventListener('wheel', preventCancelableEvents);
```



## Notes

Si l'événement peut être annulé, ou non, est déterminé au moment de l'initialisation de celui-ci.

Pour annuler un événement, utiliser la méthode {{domxref("event.preventDefault", "preventDefault()")}} sur celui-ci. Cela permet d'empêcher l'action par défaut associée à l'événement de s'exécuter.

## Spécifications

| Spécification                                                                                        | Statut                               | Commentaire          |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------ | -------------------- |
| {{SpecName('DOM WHATWG', '#dom-event-cancelable', 'Event.cancelable')}}     | {{ Spec2('DOM WHATWG') }}     |                      |
| {{SpecName('DOM4', '#dom-event-cancelable', 'Event.cancelable')}}             | {{ Spec2('DOM4') }}             |                      |
| {{SpecName('DOM2 Events', '#Events-Event-canCancel', 'Event.cancelable')}} | {{ Spec2('DOM2 Events') }} | Définition initiale. |

## Compatibilité des navigateurs

{{Compat("api.Event.cancelable")}}