# Class: EventManager

事件管理器。

每个`Element`都有自己的事件管理器，通过参数可以触发到`xml`。

## Table of contents

### Constructors

- constructor

### Properties

- isEventManager

### Methods

- add
- addOnce
- clear
- flush
- flushAll
- has
- remove
- trigger

## Constructors

### constructor

• **new EventManager**(`_el`, `_triggerElementEvent`)

#### Parameters

| Name | Type |
| :------ | :------ |
| `_el` | [`Element`](Element) |
| `_triggerElementEvent` | `TFrameworkEventTrigger` |

## Properties

### isEventManager

• **isEventManager**: `boolean` = `true`

## Methods

### add

▸ **add**(`type`, `callback`, `priority?`): [`EventManager`](EventManager)

添加一个事件监听器。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `TEvent` | `any` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `callback` | [`TEventCallback`](../modules#TEventCallback) |
| `priority?` | `number` |

#### Returns

[`EventManager`](EventManager)

___

### addOnce

▸ **addOnce**(`type`, `callback`, `priority?`): [`EventManager`](EventManager)

添加一个事件监听器，触发一次后自动移除。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `TEvent` | `any` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `callback` | [`TEventCallback`](../modules#TEventCallback) |
| `priority?` | `number` |

#### Returns

[`EventManager`](EventManager)

___

### clear

▸ **clear**(`type`): [`EventManager`](EventManager)

清空某事件的所有监听器。

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |

#### Returns

[`EventManager`](EventManager)

___

### flush

▸ **flush**(`type`): [`EventManager`](EventManager)

分发某个缓存的事件，一般不需要自行触发。

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |

#### Returns

[`EventManager`](EventManager)

___

### flushAll

▸ **flushAll**(): [`EventManager`](EventManager)

分发所有缓存的事件，一般不需要自行触发。

#### Returns

[`EventManager`](EventManager)

___

### has

▸ **has**(`type`): `boolean`

判断一个事件是否被注册。
注册是指用户绑定过了至少一个事件处理器，无论是来自于wxml还是JS。

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |

#### Returns

`boolean`

___

### remove

▸ **remove**(`type`, `callback`): [`EventManager`](EventManager)

移除一个事件监听器。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `TEvent` | `any` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | `string` |
| `callback` | [`TEventCallback`](../modules#TEventCallback) |

#### Returns

[`EventManager`](EventManager)

___

### trigger

▸ **trigger**(`type`, `event?`, `immediately?`, `toXML?`, `bubbles?`): [`EventManager`](EventManager)

触发一个事件。

#### Type parameters

| Name | Type |
| :------ | :------ |
| `TEvent` | `any` |

#### Parameters

| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `type` | `string` | `undefined` | 要触发的事件类型。 |
| `event?` | `TEvent` | `undefined` | 事件的值。 |
| `immediately` | `boolean` | `true` | 是否要将事件立即分发，如果不则会先缓存，之后在每一帧更新前统一分发，避免不必要的分发。 |
| `toXML` | `boolean` | `true` | 是否要派发到`xml`绑定的事件中。 |
| `bubbles` | `boolean` | `false` | 是否要进行事件冒泡。 |

#### Returns

[`EventManager`](EventManager)
