305 lines
6.0 KiB
Markdown
305 lines
6.0 KiB
Markdown
辅助函数
|
||
==============================
|
||
|
||
vConsole 提供一些辅助函数以便开发插件。
|
||
|
||
辅助函数会按照类型,挂载到 vConsole 的不同属性中:
|
||
|
||
- `vConsole.tool`:辅助函数。
|
||
- `vConsole.$`:DOM 操作相关函数。
|
||
|
||
|
||
## vConsole.tool
|
||
|
||
### vConsole.tool.isString(value)
|
||
### vConsole.tool.isArray(value)
|
||
### vConsole.tool.isBoolean(value)
|
||
### vConsole.tool.isElement(value)
|
||
### vConsole.tool.isFunction(value)
|
||
### vConsole.tool.isNull(value)
|
||
### vConsole.tool.isNumber(value)
|
||
### vConsole.tool.isObject(value)
|
||
### vConsole.tool.isSymbol(value)
|
||
### vConsole.tool.isUndefined(value)
|
||
|
||
判断变量是否为指定的类型。
|
||
|
||
##### 返回:
|
||
- Boolean
|
||
|
||
|
||
|
||
### vConsole.tool.htmlEncode(text)
|
||
|
||
将文本转为 HTML 安全的字符串。
|
||
|
||
##### 参数:
|
||
- (required) text: 字符串。
|
||
|
||
##### 返回:
|
||
- String
|
||
|
||
|
||
|
||
### vConsole.tool.setStorage(key, value)
|
||
|
||
将数据写入 `localStorage`。前缀 `vConsole_` 会自动加到 `key` 之前。
|
||
|
||
在一些设备中,`localStorage` 可能不存在,因此 `value` 将无法正常存储。所以不要使用此方法来保存持久性数据。
|
||
|
||
##### 参数:
|
||
- (required) key: 字符串,数据的键名。
|
||
- (required) value: 字符串,数据的键值。
|
||
|
||
##### 返回:
|
||
- 无
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
vConsole.tool.setStorage('count', 1);
|
||
```
|
||
|
||
|
||
|
||
### vConsole.tool.getStorage(key)
|
||
|
||
获取 `localStorage` 的数据。前缀 `vConsole_` 会自动加到 `key` 之前。
|
||
|
||
##### 参数:
|
||
- (required) key: A string, the name of data.
|
||
|
||
##### 返回:
|
||
- String
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var num = vConsole.tool.setStorage('count'); // => 1
|
||
```
|
||
|
||
|
||
|
||
## vConsole.$
|
||
|
||
### vConsole.$.one(selectors, baseElement)
|
||
|
||
获取在 `document` 或 `baseElement` 中匹配 `selectors` 的首个 element 元素。
|
||
|
||
##### 参数:
|
||
- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
|
||
- (optional) baseElement: Element 对象,默认为 `document`.
|
||
|
||
##### 返回:
|
||
- Element object
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $page = vConsole.$.one('#my_page');
|
||
var $item = vConsole.$.one('.item', $page);
|
||
```
|
||
|
||
|
||
### vConsole.$.all(selectors, baseElement)
|
||
|
||
获取在 `document` 或 `baseElement` 中匹配 `selectors` 的所有 element 元素。
|
||
|
||
##### 参数:
|
||
- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
|
||
- (optional) baseElement: Element 对象,默认为 `document`.
|
||
|
||
##### 返回:
|
||
- Element object
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $page = vConsole.$.one('#my_page');
|
||
var $items = vConsole.$.all('.item', $page);
|
||
```
|
||
|
||
|
||
### vConsole.$.addClass(elements, className)
|
||
|
||
为一个或一组 element 添加 class 样式名。
|
||
|
||
##### 参数:
|
||
- (required) elements: 单个或一个数组的 element 对象。
|
||
- (required) className: 字符串,多个样式名以空格隔开。
|
||
|
||
##### 返回:
|
||
- 无
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $items = vConsole.$.all('.item');
|
||
vConsole.$.addClass($items, 'selected');
|
||
```
|
||
|
||
|
||
### vConsole.$.removeClass(elements, className)
|
||
|
||
为一个或一组 element 删除 class 样式名。
|
||
|
||
##### 参数:
|
||
- (required) elements: 单个或一个数组的 element 对象。
|
||
- (required) className: 字符串,多个样式名以空格隔开。
|
||
|
||
##### 返回:
|
||
- 无
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $items = vConsole.$.all('.item');
|
||
vConsole.$.removeClass($items, 'selected');
|
||
```
|
||
|
||
|
||
### vConsole.$.hasClass(element, className)
|
||
|
||
判断一个 element 对象是否有指定的样式名。
|
||
|
||
##### 参数:
|
||
- (required) element: Element 对象。
|
||
- (required) className: 字符串。
|
||
|
||
##### 返回:
|
||
- Boolean
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $page = vConsole.$.one('#my_page');
|
||
if (vConsole.$.hasClass($page, 'actived')) {
|
||
// do something
|
||
}
|
||
```
|
||
|
||
|
||
### vConsole.$.bind(elements, eventType, fn, useCapture)
|
||
|
||
绑定一个事件到一个或一组 element。
|
||
|
||
##### 参数:
|
||
- (required) elements: 单个或一个数组的 element 对象。
|
||
- (required) eventType: 字符串,事件类型。
|
||
- (required) fn: 事件回调函数。
|
||
- (optional) useCapture: 布尔值,用于设定是使用 capturing 还是 bubbling。默认为 `false`.
|
||
|
||
##### 返回:
|
||
- 无
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $btn = vConsole.$.one('#submit');
|
||
vConsole.$.bind($btn, 'click', function(event) {
|
||
event.preventDefault();
|
||
alert('submit!');
|
||
});
|
||
```
|
||
|
||
|
||
### vConsole.$.delegate(element, eventType, selectors, fn)
|
||
|
||
绑定一个事件到一个 element 中,只有匹配 selecors 的子元素才会触发事件。
|
||
|
||
##### 参数:
|
||
- (required) element: Element 对象。
|
||
- (required) eventType: 字符串,事件类型。
|
||
- (required) selectors: CSS 选择器字符串,多个选择器以空格隔开。
|
||
- (required) fn: 事件回调函数。
|
||
|
||
##### 返回:
|
||
- 无
|
||
|
||
##### 例子:
|
||
|
||
```javascript
|
||
var $page = vConsole.$.one('#my_page');
|
||
vConsole.$.delegate($page, 'click', '.item', function(event) {
|
||
vConsole.$.addClass(this, 'selected'); // this => '.item'
|
||
});
|
||
```
|
||
|
||
|
||
### vConsole.$.render(tpl, data, toString)
|
||
|
||
Compile a template into an element object or a HTML string with given data.
|
||
使用指定数据将模板文本编译成 element 对象或者 HTML 字符串。
|
||
|
||
##### 参数:
|
||
- (required) tpl: 模板字符串。
|
||
- (required) data: 一组 key-value 形式的数据源。
|
||
- (optional) toString: 布尔值,用于设定返回值为 element 对象还是 HTML 字符串,默认为 `false`。
|
||
|
||
##### 返回:
|
||
- Element 对象或者 HTML 字符串
|
||
|
||
##### 模板语法:
|
||
|
||
If:
|
||
```html
|
||
{{if}}
|
||
...
|
||
{{else}}
|
||
...
|
||
{{/if}}
|
||
```
|
||
|
||
For:
|
||
```html
|
||
{{for (var i=0; i<10; i++)}}
|
||
...
|
||
{{continue}}
|
||
{{break}}
|
||
{{/for}}
|
||
```
|
||
|
||
Switch:
|
||
```html
|
||
{{switch (flag)}}
|
||
{{case 1}}
|
||
...
|
||
{{break}}
|
||
{{default}}
|
||
...
|
||
{{/switch}}
|
||
```
|
||
|
||
Print:
|
||
```html
|
||
{{flag}}
|
||
```
|
||
|
||
###### 例子:
|
||
|
||
```javascript
|
||
var tpl = '<ul>' +
|
||
'{{for (var i = 0; i < list.length; i++)}}' +
|
||
'<li>' + '{{list[i]}}' + '</li>' +
|
||
'{{/for}}' +
|
||
'</ul>';
|
||
var data = {
|
||
list: ['Red', 'Blue', 'Yellow']
|
||
};
|
||
|
||
var html = vConsole.$.render(tpl, data, true);
|
||
document.body.innerHTML += html;
|
||
```
|
||
|
||
输出:
|
||
|
||
```html
|
||
<ul>
|
||
<li>Red</li>
|
||
<li>Blue</li>
|
||
<li>Yellow</li>
|
||
</ul>
|
||
```
|
||
|
||
|
||
[返回索引](./a_doc_index_CN.md) |