File tree Expand file tree Collapse file tree 2 files changed +54
-2
lines changed
Expand file tree Collapse file tree 2 files changed +54
-2
lines changed Original file line number Diff line number Diff line change 6060- events/event.md : Event 对象
6161- events/mouseevent.md : MouseEvent 接口,WheelEvent 接口
6262- events/touchevent.md : Touch 接口,TouchList 接口,TouchEvent 接口
63- - events/keyboardevent.md : KeyboardEvent 接口,InputEvent 接口
63+ - events/keyboardevent.md : KeyboardEvent 接口,InputEvent 接口,CustomEvent 接口
6464- events/globaleventhandlers.md : GlobalEventHandlers 接口
6565- bom/ : 浏览器模型
6666- bom/cookie.md : Cookie
Original file line number Diff line number Diff line change 1- # KeyboardEvent 接口,InputType 接口
1+ # KeyboardEvent 接口,InputType 接口,CustomEvent 接口
22
33## KeyboardEvent 概述
44
@@ -163,3 +163,55 @@ function myFunction(e) {
163163
164164` InputEvent.dataTransfer ` 属性返回一个 DataTransfer 实例。该属性只在文本框接受粘贴内容(insertFromPaste)或拖拽内容(` insertFromDrop ` )时才有效。
165165
166+ ## CustomEvent 接口
167+
168+ CustomEvent 接口用于生成自定义的事件实例。那些浏览器预定义的事件,虽然可以手动生成,但是往往不能在事件上绑定数据。如果需要在触发事件的同时,传入指定的数据,就可以使用 CustomEvent 接口生成的自定义事件对象。
169+
170+ 浏览器原生提供` CustomEvent() ` 构造函数,用来生成 CustomEvent 事件实例。
171+
172+ ``` javascript
173+ new CustomEvent (type, options)
174+ ```
175+
176+ ` CustomEvent() ` 构造函数接受两个参数。第一个参数是字符串,表示事件的名字,这是必须的。第二个参数是事件的配置对象,这个参数是可选的。` CustomEvent ` 的配置对象除了接受 Event 事件的配置属性,只有一个自己的属性。
177+
178+ - ` detail ` :表示事件的附带数据,默认为` null ` 。
179+
180+ 下面是一个例子。
181+
182+ ``` javascript
183+ var event = new CustomEvent (' build' , { ' detail' : ' hello' });
184+
185+ function eventHandler (e ) {
186+ console .log (e .detail );
187+ }
188+
189+ document .body .addEventListener (' build' , function (e ) {
190+ console .log (e .detail );
191+ });
192+
193+ document .body .dispatchEvent (event );
194+ ```
195+
196+ 上面代码中,我们手动定义了` build ` 事件。该事件触发后,会被监听到,从而输出该事件实例的` detail ` 属性(即字符串` hello ` )。
197+
198+ 下面是另一个例子。
199+
200+ ``` javascript
201+ var myEvent = new CustomEvent (' myevent' , {
202+ detail: {
203+ foo: ' bar'
204+ },
205+ bubbles: true ,
206+ cancelable: false
207+ });
208+
209+ el .addEventListener (' myevent' , function (event ) {
210+ console .log (' Hello ' + event .detail .foo );
211+ });
212+
213+ el .dispatchEvent (myEvent);
214+ ```
215+
216+ 上面代码也说明,CustomEvent 的事件实例,除了具有 Event 接口的实例属性,还具有` detail ` 属性。
217+
You can’t perform that action at this time.
0 commit comments