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
|
22 | myPlugin.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
|
41 | myPlugin.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 |
|
58 | Property | | | |
|
59 | ------- | ------- | ------- | -------
|
60 | name | string | 必填 | 按钮展示的名字。
|
61 | data | object | 选填 | 按钮的 dataset,key-value 格式。
|
62 | className | string | 选填 | 按钮的 className。
|
63 | onClick | function | 必填 | 点击按钮时的回调函数。触发回调后,除非回调函数返回 `false`,此按钮将自动变为选中的样式。
|
64 |
|
65 | ##### 例子:
|
66 |
|
67 | ```javascript
|
68 | var type;
|
69 | myPlugin.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 |
|
107 | tool 按钮的参数为:
|
108 |
|
109 | Property | | | |
|
110 | ------- | ------- | ------- | -------
|
111 | name | string | 必填 | 按钮展示的名字。
|
112 | global | boolean | 选填,默认 `false` | `false` 时,当切换到别的 tab 后,按钮就会被隐藏;`true` 时,按钮变成全局可见。
|
113 | onClick | function() | 必填 | 点击按钮时的回调函数。
|
114 |
|
115 | ##### 例子:
|
116 |
|
117 | ```javascript
|
118 | myPlugin.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
|
143 | myPlugin.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
|
162 | myPlugin.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
|
179 | myPlugin.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
|
196 | myPlugin.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
|
213 | myPlugin.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
|
230 | myPlugin.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
|
247 | myPlugin.on('updateOption', function() {
|
248 | // do something
|
249 | });
|
250 | ```
|
251 |
|
252 |
|
253 | [返回索引](./a_doc_index_CN.md) |
\ | No newline at end of file |