UNPKG

6.1 kBMarkdownView Raw
1辅助函数
2==============================
3
4vConsole 提供一些辅助函数以便开发插件。
5
6辅助函数会按照类型,挂载到 vConsole 的不同属性中:
7
8- `vConsole.tool`:辅助函数。
9- `vConsole.$`:DOM 操作相关函数。
10
11
12## vConsole.tool
13
14### vConsole.tool.isString(value)
15### vConsole.tool.isArray(value)
16### vConsole.tool.isBoolean(value)
17### vConsole.tool.isElement(value)
18### vConsole.tool.isFunction(value)
19### vConsole.tool.isNull(value)
20### vConsole.tool.isNumber(value)
21### vConsole.tool.isObject(value)
22### vConsole.tool.isSymbol(value)
23### vConsole.tool.isUndefined(value)
24
25判断变量是否为指定的类型。
26
27##### 返回:
28- Boolean
29
30
31
32### vConsole.tool.htmlEncode(text)
33
34将文本转为 HTML 安全的字符串。
35
36##### 参数:
37- (required) text: 字符串。
38
39##### 返回:
40- String
41
42
43
44### vConsole.tool.setStorage(key, value)
45
46将数据写入 `localStorage`。前缀 `vConsole_` 会自动加到 `key` 之前。
47
48在一些设备中,`localStorage` 可能不存在,因此 `value` 将无法正常存储。所以不要使用此方法来保存持久性数据。
49
50##### 参数:
51- (required) key: 字符串,数据的键名。
52- (required) value: 字符串,数据的键值。
53
54##### 返回:
55-
56
57##### 例子:
58
59```javascript
60vConsole.tool.setStorage('count', 1);
61```
62
63
64
65### vConsole.tool.getStorage(key)
66
67获取 `localStorage` 的数据。前缀 `vConsole_` 会自动加到 `key` 之前。
68
69##### 参数:
70- (required) key: A string, the name of data.
71
72##### 返回:
73- String
74
75##### 例子:
76
77```javascript
78var num = vConsole.tool.setStorage('count'); // => 1
79```
80
81
82
83## vConsole.$
84
85### vConsole.$.one(selectors, baseElement)
86
87获取在 `document``baseElement` 中匹配 `selectors` 的首个 element 元素。
88
89##### 参数:
90- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
91- (optional) baseElement: Element 对象,默认为 `document`.
92
93##### 返回:
94- Element object
95
96##### 例子:
97
98```javascript
99var $page = vConsole.$.one('#my_page');
100var $item = vConsole.$.one('.item', $page);
101```
102
103
104### vConsole.$.all(selectors, baseElement)
105
106获取在 `document``baseElement` 中匹配 `selectors` 的所有 element 元素。
107
108##### 参数:
109- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
110- (optional) baseElement: Element 对象,默认为 `document`.
111
112##### 返回:
113- Element object
114
115##### 例子:
116
117```javascript
118var $page = vConsole.$.one('#my_page');
119var $items = vConsole.$.all('.item', $page);
120```
121
122
123### vConsole.$.addClass(elements, className)
124
125为一个或一组 element 添加 class 样式名。
126
127##### 参数:
128- (required) elements: 单个或一个数组的 element 对象。
129- (required) className: 字符串,多个样式名以空格隔开。
130
131##### 返回:
132-
133
134##### 例子:
135
136```javascript
137var $items = vConsole.$.all('.item');
138vConsole.$.addClass($items, 'selected');
139```
140
141
142### vConsole.$.removeClass(elements, className)
143
144为一个或一组 element 删除 class 样式名。
145
146##### 参数:
147- (required) elements: 单个或一个数组的 element 对象。
148- (required) className: 字符串,多个样式名以空格隔开。
149
150##### 返回:
151-
152
153##### 例子:
154
155```javascript
156var $items = vConsole.$.all('.item');
157vConsole.$.removeClass($items, 'selected');
158```
159
160
161### vConsole.$.hasClass(element, className)
162
163判断一个 element 对象是否有指定的样式名。
164
165##### 参数:
166- (required) element: Element 对象。
167- (required) className: 字符串。
168
169##### 返回:
170- Boolean
171
172##### 例子:
173
174```javascript
175var $page = vConsole.$.one('#my_page');
176if (vConsole.$.hasClass($page, 'actived')) {
177 // do something
178}
179```
180
181
182### vConsole.$.bind(elements, eventType, fn, useCapture)
183
184绑定一个事件到一个或一组 element。
185
186##### 参数:
187- (required) elements: 单个或一个数组的 element 对象。
188- (required) eventType: 字符串,事件类型。
189- (required) fn: 事件回调函数。
190- (optional) useCapture: 布尔值,用于设定是使用 capturing 还是 bubbling。默认为 `false`.
191
192##### 返回:
193-
194
195##### 例子:
196
197```javascript
198var $btn = vConsole.$.one('#submit');
199vConsole.$.bind($btn, 'click', function(event) {
200 event.preventDefault();
201 alert('submit!');
202});
203```
204
205
206### vConsole.$.delegate(element, eventType, selectors, fn)
207
208绑定一个事件到一个 element 中,只有匹配 selecors 的子元素才会触发事件。
209
210##### 参数:
211- (required) element: Element 对象。
212- (required) eventType: 字符串,事件类型。
213- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
214- (required) fn: 事件回调函数。
215
216##### 返回:
217-
218
219##### 例子:
220
221```javascript
222var $page = vConsole.$.one('#my_page');
223vConsole.$.delegate($page, 'click', '.item', function(event) {
224 vConsole.$.addClass(this, 'selected'); // this => '.item'
225});
226```
227
228
229### vConsole.$.render(tpl, data, toString)
230
231Compile a template into an element object or a HTML string with given data.
232使用指定数据将模板文本编译成 element 对象或者 HTML 字符串。
233
234##### 参数:
235- (required) tpl: 模板字符串。
236- (required) data: 一组 key-value 形式的数据源。
237- (optional) toString: 布尔值,用于设定返回值为 element 对象还是 HTML 字符串,默认为 `false`
238
239##### 返回:
240- Element 对象或者 HTML 字符串
241
242##### 模板语法:
243
244If:
245```html
246{{if}}
247 ...
248{{else}}
249 ...
250{{/if}}
251```
252
253For:
254```html
255{{for (var i=0; i<10; i++)}}
256 ...
257 {{continue}}
258 {{break}}
259{{/for}}
260```
261
262Switch:
263```html
264{{switch (flag)}}
265 {{case 1}}
266 ...
267 {{break}}
268 {{default}}
269 ...
270{{/switch}}
271```
272
273Print:
274```html
275{{flag}}
276```
277
278###### 例子:
279
280```javascript
281var tpl = '<ul>' +
282 '{{for (var i = 0; i < list.length; i++)}}' +
283 '<li>' + '{{list[i]}}' + '</li>' +
284 '{{/for}}' +
285'</ul>';
286var data = {
287 list: ['Red', 'Blue', 'Yellow']
288};
289
290var html = vConsole.$.render(tpl, data, true);
291document.body.innerHTML += html;
292```
293
294输出:
295
296```html
297<ul>
298<li>Red</li>
299<li>Blue</li>
300<li>Yellow</li>
301</ul>
302```
303
304
305[返回索引](./a_doc_index_CN.md)
\No newline at end of file