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 60
60
- events/event.md : Event 对象
61
61
- events/mouseevent.md : MouseEvent 接口,WheelEvent 接口
62
62
- events/touchevent.md : Touch 接口,TouchList 接口,TouchEvent 接口
63
- - events/keyboardevent.md : KeyboardEvent 接口,InputEvent 接口
63
+ - events/keyboardevent.md : KeyboardEvent 接口,InputEvent 接口,CustomEvent 接口
64
64
- events/globaleventhandlers.md : GlobalEventHandlers 接口
65
65
- bom/ : 浏览器模型
66
66
- bom/cookie.md : Cookie
Original file line number Diff line number Diff line change 1
- # KeyboardEvent 接口,InputType 接口
1
+ # KeyboardEvent 接口,InputType 接口,CustomEvent 接口
2
2
3
3
## KeyboardEvent 概述
4
4
@@ -163,3 +163,55 @@ function myFunction(e) {
163
163
164
164
` InputEvent.dataTransfer ` 属性返回一个 DataTransfer 实例。该属性只在文本框接受粘贴内容(insertFromPaste)或拖拽内容(` insertFromDrop ` )时才有效。
165
165
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