--- title: Document.createEvent() slug: Web/API/Document/createEvent translation_of: Web/API/Document/createEvent ---
createEvent使用的许多方法
, 如 initCustomEvent
, 都被废弃了. 请使用 event constructors 来替代.
创建一个指定类型的事件。其返回的对象必须先初始化并可以被传递给 element.dispatchEvent。
var event = document.createEvent(type);
event
就是被创建的 Event 对象.type
是一个字符串,表示要创建的事件类型。事件类型可能包括"UIEvents"
, "MouseEvents"
, "MutationEvents"
, 或者 "HTMLEvents"
。请查看 {{Anch("Notes")}} 章节获取详细信息 。// 创建事件 var event = document.createEvent('Event'); // 定义事件名为'build'. event.initEvent('build', true, true); // 监听事件 elem.addEventListener('build', function (e) { // e.target matches elem }, false); // 触发对象可以是任何元素或其他事件目标 elem.dispatchEvent(event);
Event type字符串只能传递事件模块中定义的值给CreateEvent。其中一些事件模块是在DOM事件规范定义的,还有些事在其他规范定义的(如SVG),还有一些是Gecko-specific事件。详情见下表。
To-do: 添加事件名称到下表中。
事件模块 | 传递给 createEvent的 Event type |
事件初始化方法 |
---|---|---|
DOM Level 2 Events | ||
User Interface event module | "UIEvents" |
event.initUIEvent |
Mouse event module | "MouseEvents" |
event.initMouseEvent |
Mutation event module | "MutationEvents" |
event.initMutationEvent |
HTML event module | "HTMLEvents" |
event.initEvent |
DOM Level 3 Events | ||
User Interface event module | "UIEvent" , "UIEvents" |
event.initUIEvent |
Mouse event module | "MouseEvent" , "MouseEvents" |
event.initMouseEvent |
Mutation event module | "MutationEvent" , "MutationEvents" |
event.initMutationEvent |
Mutation name event module (not implemented in Gecko as of June 2006) | "MutationNameEvent" |
event.initMutationNameEvent |
Text event module | "TextEvent" (Gecko also supports "TextEvents" ) |
event.initTextEvent (not implemented) |
Keyboard event module | "KeyboardEvent" (Gecko also supports "KeyEvents" ) |
event.initKeyEvent (Gecko-specific; the DOM 3 Events working draft uses initKeyboardEvent instead) |
Custom event module {{gecko_minversion_inline("6.0")}} | "CustomEvent" |
event.initCustomEvent |
Basic events module | "Event" (Gecko also supports "Events" ) |
event.initEvent |
SVG 1.1 Scripting | ||
SVG | "SVGEvents" (Gecko also supports "SVGEvent" ) |
event.initEvent |
"SVGZoomEvents" (Gecko also supports "SVGZoomEvent" ) |
event.initUIEvent | |
Other event types supported by Gecko | ||
- | "MessageEvent"{{Gecko_minversion_inline(1.9)}} |
event.initMessageEvent |
"MouseScrollEvents" , "PopupEvents" |
event.initMouseEvent | |
"PopupBlockedEvents" |
event.initPopupBlockedEvent | |
"XULCommandEvent" , "XULCommandEvents" |
event.initCommandEvent | |
Progress Events | "ProgressEvent" |
{{domxref("ProgressEvent.initProgressEvent()")}}{{deprecated_inline("22.0")}}{{non-standard_inline()}} |
Animation Events | "AnimationEvent" (or "WebKitAnimationEvent" for WebKit/Blink-based browsers) |
{{domxref("AnimationEvent.initAnimationEvent()")}}{{deprecated_inline("23.0")}}{{non-standard_inline()}} |
Transition Events | "TransitionEvent" (or "WebKitTransitionEvent" for WebKit/Blink-based browsers) |
{{domxref("TransitionEvent.initTransitionEvent()")}}{{deprecated_inline("23.0")}}{{non-standard_inline()}} |
有些事件可以使用两种事件类型参数,这是因为DOM Level 3 Events将事件类型参数更改为单数形式,但是仍然支持老的复数形式以向后兼容。