UNPKG

5.34 kBMarkdownView Raw
1插件:Event 事件列表
2==============================
3
4插件的所有事件(event)都是可选的,不强制绑定。但一些特性(比如添加 tool 按钮)依赖于指定的事件,所以若要实现那些特性,就必须绑定指定的事件。
5
6每个事件都会有一个 callback 回调函数,当事件被触发时,就会执行 callback。一些 callback 可能会带有参数。
7
8
9
10## init
11
12当插件开始初始化时触发。这个事件触发时,代表 vConsole 开始安装此插件,开发者可以在此时初始化一些配置。
13这个事件只会触发一次。
14
15注意,此时插件的 DOM 仍未就绪,插件还未被渲染到页面中。
16
17##### Callback 参数:
18-
19
20##### 例子:
21```javascript
22myPlugin.on('init', function() {
23 // 在这里可以初始化一些自用的配置
24 this.list = []; // `this` == `myPlugin`
25});
26```
27
28
29## renderTab
30
31当 vConsole 尝试为此插件渲染新 tab 时触发。这个事件只会触发一次。
32
33绑定此事件后,vConsole 会认为此插件需要创建新 tab,并会将 callback 中获取的 HTML 用于渲染 tab。因此,只要绑定了此事件,新 tab 肯定会被渲染到页面中,无论 callback 传入的 HTML 是否为空。如果不需要添加新 tab,请不要绑定此事件。
34
35##### Callback 参数
36- (必填) function(html): 回调函数,接收一个 HTML 参数用于渲染 tab。`html` 可以为 HTML 字符串,或者 `HTMLElement` 对象(或支持 `appendTo()` 方法的对象,如 jQuery 对象)。
37
38##### 例子:
39
40```javascript
41myPlugin.on('renderTab', function(callback) {
42 var html = '<div>Hello</div>';
43 callback(html);
44});
45```
46
47
48## addTopBar
49
50当 vConsole 尝试为此插件添加新的 topbar 按钮时触发。这个事件只会触发一次。
51
52#### Callback 参数:
53
54- (必填) function(btnList): 回调函数,接收一个带有按钮配置信息的 `array` 数组。
55
56按钮的参数为:
57
58Property | | | |
59------- | ------- | ------- | -------
60name | string | 必填 | 按钮展示的名字。
61data | object | 选填 | 按钮的 dataset,key-value 格式。
62className | string | 选填 | 按钮的 className。
63onClick | function | 必填 | 点击按钮时的回调函数。触发回调后,除非回调函数返回 `false`,此按钮将自动变为选中的样式。
64
65##### 例子:
66
67```javascript
68var type;
69myPlugin.on('addTopBar', function(callback) {
70 var btnList = [];
71 btnList.push({
72 name: 'Apple',
73 className: '',
74 data: {type: 'apple'},
75 onClick: function() {
76 if (type != this.dataset.type) {
77 // `this` 指向当前按钮
78 type = this.dataset.type;
79 } else {
80 return false;
81 }
82 }
83 });
84 btnList.push({
85 name: 'Orange',
86 className: '',
87 data: {type: 'orange'},
88 onClick: function() {
89 type = this.dataset.type;
90 }
91 }
92 });
93 callback(btnList);
94});
95```
96
97
98
99## addTool
100
101当 vConsole 尝试为此插件添加新的 tool 按钮时触发。这个事件只会触发一次。
102
103##### Callback 参数:
104
105- (必填) function(toolList): 回调函数,接收一个带有按钮配置信息的 `array` 数组。
106
107tool 按钮的参数为:
108
109Property | | | |
110------- | ------- | ------- | -------
111name | string | 必填 | 按钮展示的名字。
112global | boolean | 选填,默认 `false` | `false` 时,当切换到别的 tab 后,按钮就会被隐藏;`true` 时,按钮变成全局可见。
113onClick | function() | 必填 | 点击按钮时的回调函数。
114
115##### 例子:
116
117```javascript
118myPlugin.on('addTool', function(callback) {
119 var toolList = [];
120 toolList.push({
121 name: 'Reload',
122 global: false,
123 onClick: function(e) {
124 location.reload();
125 }
126 });
127 callback(toolList);
128});
129```
130
131
132## ready
133
134当插件初始化结束后触发。这个事件只会触发一次。此时插件已经成功安装并已渲染到页面。
135
136##### Callback 参数:
137
138-
139
140##### 例子:
141
142```javascript
143myPlugin.on('ready', function() {
144 // do something...
145});
146```
147
148
149## remove
150
151当插件即将卸载前触发。这个事件只会触发一次。
152
153需要注意的是,如果在 vConsole ready 之前就卸载插件,那么此事件会在 `init` 之前就被调用。
154
155##### Callback 参数:
156
157-
158
159##### 例子:
160
161```javascript
162myPlugin.on('remove', function() {
163 // do something...
164});
165```
166
167
168## show
169
170当插件的 tab 被显示时触发。只有绑定了 `renderTab` 事件的插件才会收到此事件。
171
172##### Callback 参数:
173
174-
175
176##### 例子:
177
178```javascript
179myPlugin.on('show', function() {
180 // do something
181});
182```
183
184
185## hide
186
187当插件的 tab 被隐藏时触发。只有绑定了 `renderTab` 事件的插件才会收到此事件。
188
189##### Callback 参数:
190
191-
192
193##### 例子:
194
195```javascript
196myPlugin.on('hide', function() {
197 // do something
198});
199```
200
201
202## showConsole
203
204当 vConsole 被显示时触发。
205
206##### Callback 参数:
207
208-
209
210##### 例子:
211
212```javascript
213myPlugin.on('showConsole', function() {
214 // do something
215});
216```
217
218
219## hideConsole
220
221当 vConsole 被隐藏时触发。
222
223##### Callback 参数:
224
225-
226
227##### 例子:
228
229```javascript
230myPlugin.on('hideConsole', function() {
231 // do something
232});
233```
234
235
236## updateOption
237
238`vConsole.setOption()` 被调用时触发
239
240##### Callback 参数:
241
242- none
243
244##### 例子:
245
246```javascript
247myPlugin.on('updateOption', function() {
248 // do something
249});
250```
251
252
253[返回索引](./a_doc_index_CN.md)
\No newline at end of file