Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync with english version for CustomEvent #8085

Merged
merged 2 commits into from
Aug 29, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 17 additions & 88 deletions files/zh-cn/web/api/customevent/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,111 +4,40 @@ slug: Web/API/CustomEvent
---
{{APIRef("DOM")}}

`CustomEvent` 事件是由程序创建的,可以有任意自定义功能的事件
`CustomEvent` 接口表示由程序出于某个目的而创建的事件

{{AvailableInWorkers}}

{{InheritanceDiagram}}

## 构造函数

**{{domxref("CustomEvent.CustomEvent", "CustomEvent()")}}** 创建一个自定义事件。
- {{domxref("CustomEvent.CustomEvent", "CustomEvent()")}}
- : 创建一个新的 `CustomEvent`。

## 属性

**{{domxref("CustomEvent.detail")}} {{readonlyinline}} 任何时间初始化时传入的数据**

_此接口从父接口继承属性,_ {{domxref("Event")}}:
_此接口从父接口 {{domxref("Event")}} 继承属性。_

{{Page("/zh-CN/docs/Web/API/Event", "Properties")}}
- {{domxref("CustomEvent.detail")}} {{ReadOnlyInline}}
- : 返回在初始化事件时传入的任何数据。

## 方法

- {{domxref("CustomEvent.initCustomEvent()")}} {{deprecated_inline}}
- : 初始化一个 `CustomEvent 对象。如果事件已经被触发,这个方法将不会起任何作用。`

_此接口从父接口继承方法,_ {{domxref("Event")}}:

{{Page("/zh-CN/docs/Web/API/Event", "Methods")}}

## 方法概述

```
void initCustomEvent(in DOMString type, in boolean canBubble, in boolean cancelable, in any detail);
```

## 属性

| 属性 | 类型 | 描述 |
| -------- | ----- | -------------------------- |
| `detail` | `any` | 当事件初始化时传递的数据。 |

## 方法

### initCustomEvent()

初始化一个自定义事件的方式和初始化一个标准 DOM 事件的方式非常相似。

```
void initCustomEvent(
in DOMString type,
in boolean canBubble,
in boolean cancelable,
in any detail
);
```
_此接口从父接口 {{domxref("Event")}} 继承方法。_

#### 参数

- `type`
- : 事件的类型名称。
- `canBubble`
- : 一个布尔值,表明该事件是否会冒泡。
- `cancelable`
- : 一个布尔值,表明该事件是否可以被取消。
- `detail`
- : 当事件初始化时传递的数据。

## 构造函数

[DOM4 规范](http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html) 添加了对 `CustomEvent` 构造函数的支持。

```
CustomEvent(
DOMString type,
optional CustomEventInit eventInitDict
)
```

### 参数

- `type`
- : 事件的类型名称。
- `eventInitDict`
- : 一个提供事件的配置信息对象。查看[CustomEventInit](#CustomEventInit)了解更多详情。

#### CustomEventInit

- `bubbles`
- : 一个布尔值,表明该事件是否会冒泡。
- `cancelable`
- : 一个布尔值,表明该事件是否可以被取消。
- `detail`
- : 当事件初始化时传递的数据。

### CustomEvent 用法示例

```js
// 添加一个适当的事件监听器
obj.addEventListener("cat", function(e) { process(e.detail) })

// 创建并分发事件
var event = new CustomEvent("cat", {"detail":{"hazcheeseburger":true}})
obj.dispatchEvent(event)
```
- {{domxref("CustomEvent.initCustomEvent()")}} {{deprecated_inline}}
- : 初始化一个 `CustomEvent` 对象。如果事件已经被触发,这个方法将不会起任何作用。

## 规范

{{Specifications}}

## 浏览器兼容性

{{Compat("api.CustomEvent")}}
{{Compat}}

## 参见

- {{domxref("Window.postMessage()")}}
- [创建和触发事件](/zh-CN/docs/Web/Events/Creating_and_triggering_events)