From 4b641ebffc5349be0bb645040e237936a6531f16 Mon Sep 17 00:00:00 2001 From: allo Date: Thu, 24 Mar 2022 20:23:08 +0800 Subject: [PATCH 1/2] mv to .md for `Event.cancelable` --- files/zh-cn/web/api/event/cancelable/{index.html => index.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename files/zh-cn/web/api/event/cancelable/{index.html => index.md} (100%) diff --git a/files/zh-cn/web/api/event/cancelable/index.html b/files/zh-cn/web/api/event/cancelable/index.md similarity index 100% rename from files/zh-cn/web/api/event/cancelable/index.html rename to files/zh-cn/web/api/event/cancelable/index.md From d0e4df1e2e8bffad8887178e1c19c84a6f48bf0b Mon Sep 17 00:00:00 2001 From: allo Date: Thu, 24 Mar 2022 20:55:11 +0800 Subject: [PATCH 2/2] convert to markdown and sync with english version --- files/zh-cn/web/api/event/cancelable/index.md | 77 +++++++------------ 1 file changed, 29 insertions(+), 48 deletions(-) diff --git a/files/zh-cn/web/api/event/cancelable/index.md b/files/zh-cn/web/api/event/cancelable/index.md index a7433f1e4e66e5..c02952318ad8c8 100644 --- a/files/zh-cn/web/api/event/cancelable/index.md +++ b/files/zh-cn/web/api/event/cancelable/index.md @@ -1,31 +1,37 @@ --- -title: event.cancelable +title: Event.cancelable slug: Web/API/Event/cancelable +tags: + - Property + - Read-only + - Reference translation_of: Web/API/Event/cancelable --- -

{{ ApiRef("DOM") }}

+{{ ApiRef("DOM") }} -

{{domxref("Event")}} 实例的只读属性 cancelable 表明该事件是否可以被取消,当事件被阻止之后,该事件就好像没有被触发一样。如果事件不能被取消,则其 cancelable 属性的值为 false,且事件发生时无法在事件监听回调中停止事件。

+{{domxref("Event")}} 实例的只读属性 **`cancelable`** 表明该事件是否可以被取消,即事件是否可以像从未发生一样被阻止。 -

在许多事件的监听回调中调用{{domxref("event.preventDefault", "preventDefault()")}}前,都需要检查 cancelable 属性的值。

+如果事件**不能**被取消,则其 `cancelable` 属性的值为 `false`,且事件发生时无法在事件监听回调中停止事件。 -

大部分由用户与页面交互产生的原生浏览器事件都可以被取消。取消{{event("click")}},{{event("scroll")}} 或 {{event("beforeunload")}} 事件将分别阻止用户点击某些元素,滚动页面或跳离页面。

+大部分由用户与页面交互产生的原生浏览器事件都可以被取消。取消 {{domxref("Element/click_event", "click")}}、{{domxref("Document/wheel_event", "wheel")}} 或 {{domxref("Window/beforeunload_event", "beforeunload")}} 事件将分别阻止用户点击某些元素、滚动页面或跳离页面。 -

使用其它 JavaScript 代码创建的 Custom events ,可以在初始化事件的时候控制该事件是否可以被取消。

+使用 JavaScript 代码创建的[自定义事件](/zh-CN/docs/Web/API/Event/Event),可以在初始化事件的时候声明该事件是否可以被取消。 -

语法

+要取消一个事件的默认行为,可以调用该事件的 {{domxref("event.preventDefault", "preventDefault()")}} 方法。 -
bool = event.cancelable;
+对于同时处理多种事件的监听回调,可能需要先检查 `cancelable` 属性的值,再调用这些事件的 {{domxref("event.preventDefault", "preventDefault()")}} 方法。 -

+## 值 -

返回结果为 {{domxref("Boolean")}},如果事件可以被取消将返回 true。

+为一个{{domxref("Boolean", "布尔值")}}。若事件可以被取消,其值为 `true`。 -

示例

+## 示例 -

例如,浏览器厂商提议 {{event("wheel")}} 事件只能在事件监听回调第一次执行时被取消,接下来的 wheel 事件都不能被取消。

+例如,浏览器厂商提议 {{domxref("Document/wheel_event", + "wheel")}} 事件只能在[事件监听回调第一次执行](https://github.com/WICG/interventions/issues/33)时被取消,接下来的 `wheel` 事件都不能被取消。 -
function preventScrollWheel(event) {
+```js
+function preventScrollWheel(event) {
   if (typeof event.cancelable !== 'boolean' || event.cancelable) {
     // The event can be canceled, so we do so.
     event.preventDefault();
@@ -37,38 +43,13 @@ translation_of: Web/API/Event/cancelable
   }
 }
 
-document.addEventListener('wheel', preventScrollWheel);
- -

备注

- -

事件能否被取消取决于该事件初始化时的状态。

- -

要取消一个事件的默认行为,可以调用该事件的 preventDefault()方法。与该事件关联的默认行为仍将会保留。

- -

规范

- - - - - - - - - - - - - - - - - - - - - -
规范状态备注
{{SpecName('DOM WHATWG', '#dom-event-cancelable', 'Event.cancelable')}}{{ Spec2('DOM WHATWG') }}
{{SpecName('DOM2 Events', '#Events-Event-canCancel', 'Event.cancelable')}}{{ Spec2('DOM2 Events') }}Initial definition.
- -

浏览器兼容性

- -

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

+document.addEventListener('wheel', preventScrollWheel); +``` + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}}