UNPKG

6.22 kBMarkdownView Raw
1Helper Functions
2==============================
3
4vConsole provides some useful helper functions for efficient plugin development.
5
6Helper functions are mounted in different vConsole properties according to their usage:
7
8- `vConsole.tool`: Helper functions.
9- `vConsole.$`: DOM-related functions.
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
25Check whether a value is a certain type.
26
27##### Return:
28- Boolean
29
30
31
32### vConsole.tool.htmlEncode(text)
33
34Encode a text into a HTML non-sensitive string.
35
36##### Parameters:
37- (required) text: A string to be encoded.
38
39##### Return:
40- String
41
42
43
44### vConsole.tool.setStorage(key, value)
45
46Set data to `localStorage`. A prefix `vConsole_` will be added to `key` automatically.
47
48Note that some devices may not have `localStorage` and then `value` would not be saved under this situation, so DO NOT use this method to save permanent data.
49
50##### Parameters:
51- (required) key: A string, the name of data.
52- (required) value: A string, the value of data.
53
54##### Return:
55- None
56
57##### Example:
58
59```javascript
60vConsole.tool.setStorage('count', 1);
61```
62
63
64
65### vConsole.tool.getStorage(key)
66
67Get data from `localStorage`. A prefix `vConsole_` will be added to `key` automatically.
68
69##### Parameters:
70- (required) key: A string, the name of data.
71
72##### Return:
73- String, the value of data.
74
75##### Example:
76
77```javascript
78var num = vConsole.tool.setStorage('count'); // => 1
79```
80
81
82
83## vConsole.$
84
85### vConsole.$.one(selectors, baseElement)
86
87Returns the first element within the document or baseElement that matches the specified group of selectors.
88
89##### Parameters:
90- (required) selectors: A string containing one or more CSS selectors separated by commas.
91- (optional) baseElement: An element object, default to be `document`.
92
93##### Return:
94- Element object
95
96##### Example:
97
98```javascript
99var $page = vConsole.$.one('#my_page');
100var $item = vConsole.$.one('.item', $page);
101```
102
103
104### vConsole.$.all(selectors, baseElement)
105
106Returns a list of elements within the document or baseElement that matches the specified group of selectors.
107
108##### Parameters:
109- (required) selectors: A string containing one or more CSS selectors separated by commas.
110- (optional) baseElement: An element object, default to be `document`.
111
112##### Return:
113- Element object
114
115##### Example:
116
117```javascript
118var $page = vConsole.$.one('#my_page');
119var $items = vConsole.$.all('.item', $page);
120```
121
122
123### vConsole.$.addClass(elements, className)
124
125Add the specified class(es) to element(s).
126
127##### Parameters:
128- (required) elements: A single or a list of element object(s).
129- (required) className: A string of one or more space-separated classes.
130
131##### Return:
132- None
133
134##### Example:
135
136```javascript
137var $items = vConsole.$.all('.item');
138vConsole.$.addClass($items, 'selected');
139```
140
141
142### vConsole.$.removeClass(elements, className)
143
144Remove the specified class(es) of element(s).
145
146##### Parameters:
147- (required) elements: A single or a list of element object(s).
148- (required) className: A string of one or more space-separated classes.
149
150##### Return:
151- None
152
153##### Example:
154
155```javascript
156var $items = vConsole.$.all('.item');
157vConsole.$.removeClass($items, 'selected');
158```
159
160
161### vConsole.$.hasClass(element, className)
162
163Check whether an element is assigned the given class.
164
165##### Parameters:
166- (required) element: An element object.
167- (required) className: A string.
168
169##### Return:
170- Boolean
171
172##### Example:
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
184Bind an event to element(s).
185
186##### Parameters:
187- (required) elements: A single or a list of element object(s).
188- (required) eventType: A string of event's type.
189- (required) fn: A function to execute when the event is triggered.
190- (optional) useCapture: A boolean that indicates the event uses capturing or bubbling, default to be `false`.
191
192##### Return:
193- None
194
195##### Example:
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
208Bind an event to an element, and only this element's descendants which match the selectors can trigger the event.
209
210##### Parameters:
211- (required) element: An element object.
212- (required) eventType: A string of event's type.
213- (required) selectors: A string containing one or more CSS selectors separated by commas.
214- (required) fn: A function to execute when the event is triggered.
215
216##### Return:
217- None
218
219##### Example:
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
233##### Parameters:
234- (required) tpl: A template string.
235- (required) data: A key-value data which is used to render the template.
236- (optional) toString: A boolean that indicates whether returns an element object or a HTML string, default to be `false`.
237
238##### Return:
239- Element object or HTML string
240
241##### Syntax:
242
243If:
244```html
245{{if}}
246 ...
247{{else}}
248 ...
249{{/if}}
250```
251
252For:
253```html
254{{for (var i=0; i<10; i++)}}
255 ...
256 {{continue}}
257 {{break}}
258{{/for}}
259```
260
261Switch:
262```html
263{{switch (flag)}}
264 {{case 1}}
265 ...
266 {{break}}
267 {{default}}
268 ...
269{{/switch}}
270```
271
272Print:
273```html
274{{flag}}
275```
276
277###### Example:
278
279```javascript
280var tpl = '<ul>' +
281 '{{for (var i = 0; i < list.length; i++)}}' +
282 '<li>' + '{{list[i]}}' + '</li>' +
283 '{{/for}}' +
284'</ul>';
285var data = {
286 list: ['Red', 'Blue', 'Yellow']
287};
288
289var html = vConsole.$.render(tpl, data, true);
290document.body.innerHTML += html;
291```
292
293Output:
294
295```html
296<ul>
297<li>Red</li>
298<li>Blue</li>
299<li>Yellow</li>
300</ul>
301```
302
303
304[Back to Index](./a_doc_index.md)
\No newline at end of file