Autocomplete 顾名思义就是自动完成,在 input 框中输入内容时,将会自动补全符合输入内容的信息。
官方链接及使用说明:
https://github.com/ArtemFitiskin/jquery-autocompleter
使用方法:
Scripts:
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.autocompleter.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/jquery.autocompleter.css">
使用:例一
$(function () {
$('input').autocompleter({ source: 'path/to/get_data_request' });
});
例二
var data = [
{ 'value': '1', 'label': 'one' },
{ 'value': '2', 'label': 'two' },
{ 'value': '3', 'label': 'three' }
];$(function () { $('input').autocompleter({ source: data });
});
想体验用法的可以走下面链接:
http://www.jq22.com/yanshi438
原理:
看了以下图片就能明白是怎么实现的了。
以下内容基于图片进行讲解
重点翻译一下参数和方法:
名字 -- 类型 -- 解释 -- 默认值
比较和hint的区别,若为true,则忽略changeWhenSelect
即添加 strong 标签
详细参数意义参考网页:
https://github.com/ArtemFitiskin/jquery-autocompleter
jQuery空函数
$.noop是 jQuery 中的一个空函数,源码如下:
方法:
调用源码时比较特殊。
插件中有个publics 的JSON对象中,存放着所有的方法。如图:
入口则是这样定义的:
所以方法的调用都是这样的:
$(...).autocomplete('open');
$(...).autocomplete('destory');
......
1. defaults(opt), 设置默认值
2. options(properties), 插件定义后,修改插件的参数。
例如:
$('#input').autocompleter('option', {
limit: 5,
template: '<img src="{{ image }}" alt="Image for autocompleter list item" /> {{ label }}'
});
3. open(), 打开选项
4. close(), 关闭选项
5. clearCache(), 清除缓存
6. destory() 删除插件