1 | 辅助函数
|
2 | ==============================
|
3 |
|
4 | vConsole 提供一些辅助函数以便开发插件。
|
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
|
60 | vConsole.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
|
78 | var 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
|
99 | var $page = vConsole.$.one('#my_page');
|
100 | var $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
|
118 | var $page = vConsole.$.one('#my_page');
|
119 | var $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
|
137 | var $items = vConsole.$.all('.item');
|
138 | vConsole.$.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
|
156 | var $items = vConsole.$.all('.item');
|
157 | vConsole.$.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
|
175 | var $page = vConsole.$.one('#my_page');
|
176 | if (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
|
198 | var $btn = vConsole.$.one('#submit');
|
199 | vConsole.$.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
|
222 | var $page = vConsole.$.one('#my_page');
|
223 | vConsole.$.delegate($page, 'click', '.item', function(event) {
|
224 | vConsole.$.addClass(this, 'selected'); // this => '.item'
|
225 | });
|
226 | ```
|
227 |
|
228 |
|
229 | ### vConsole.$.render(tpl, data, toString)
|
230 |
|
231 | Compile 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 |
|
244 | If:
|
245 | ```html
|
246 | {{if}}
|
247 | ...
|
248 | {{else}}
|
249 | ...
|
250 | {{/if}}
|
251 | ```
|
252 |
|
253 | For:
|
254 | ```html
|
255 | {{for (var i=0; i<10; i++)}}
|
256 | ...
|
257 | {{continue}}
|
258 | {{break}}
|
259 | {{/for}}
|
260 | ```
|
261 |
|
262 | Switch:
|
263 | ```html
|
264 | {{switch (flag)}}
|
265 | {{case 1}}
|
266 | ...
|
267 | {{break}}
|
268 | {{default}}
|
269 | ...
|
270 | {{/switch}}
|
271 | ```
|
272 |
|
273 | Print:
|
274 | ```html
|
275 | {{flag}}
|
276 | ```
|
277 |
|
278 | ###### 例子:
|
279 |
|
280 | ```javascript
|
281 | var tpl = '<ul>' +
|
282 | '{{for (var i = 0; i < list.length; i++)}}' +
|
283 | '<li>' + '{{list[i]}}' + '</li>' +
|
284 | '{{/for}}' +
|
285 | '</ul>';
|
286 | var data = {
|
287 | list: ['Red', 'Blue', 'Yellow']
|
288 | };
|
289 |
|
290 | var html = vConsole.$.render(tpl, data, true);
|
291 | document.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 |