JS控件autocomplete 0.11演示及下载 1月5日已更新


Posted in Javascript onJanuary 09, 2007

1月5日已更新

修复自动完成文本框焦点移失,自动完成容器不能消失的bug
增加expandAllItem方法,双击时可出现全部的item,详情请看示例
增加customStyle示例,该示例演示了如何对autocomplete控件进行css美化,见autocomplete_custom的css文件

演示及下载:
http://www.never-online.net/code/neverModules/autocomplete/

功能较上一版本的改进和功能:
1。匹配速度的提高。
2。加入ignoreCase属性(为false时,将区分大小写,默认为true)
3。加入ignoreWhere属性(为true时,匹配结果将使用贪婪匹配,即整个字符串中只要有输入的字符,将把dataSource内容送入匹配结果中)
4。按esc返回。
5。兼容IE6.0, Opera9.0, Mozilla Firefox1.5
6。可手动清空dataSource数据,或动态赋值给dataSource。方便的进行AJAX,详细请看示例。
7。highlighted属性(默认为true,大数据量时,建议设置为false)。
8。在IE中,弥补div被select控件遮挡。详细请看第一个示例。
9。方向键支持。

思路以及参考:

初始化时,我把所有的数据都一次用join("")生成dataSource字符串(我在字符串字使用的html都尽量的简短,使之能够以最少的字符串生成数据),之后用正则来匹配。感觉这已经在速度上是很快的了。

虽然range功能还没有加进去,但基本的已经足够了。速度还算理想。现在发现一个速度问题就是,如果要在Opera,Mozilla,IE里充分利用其内核的效率,那么结果将是代码也许会大大的加长。毕竟不同内核之间的效率是大不一样的。

兼容性与效率同样也是一个矛盾的问题。用insertAdjanceHTML这个方法,是在大数数量情况下,插入一个字符串的一个简单兼容方法之一。

还有一个就是把highlight加入的问题,用了join之后,要加亮,必须再次回溯,从而相当于进行了两次匹配。这个也是效率的问题之一。所以建议大数据量情况下,把highlighted属性设为false。这样效率理论上说,应该可以提高40%左右的速度。

Javascript 相关文章推荐
msn上的tab功能Firefox对childNodes处理的一个BUG
Jan 21 Javascript
jquery 多行滚动代码(附详细解释)
Jun 17 Javascript
IE6下CSS图片缓存问题解决方法
Dec 09 Javascript
js常用自定义公共函数汇总
Jan 15 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
如何调试异步加载页面里包含的js文件
Oct 30 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
Jan 11 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
vue实现点击追加选中样式效果
Nov 01 Javascript
根据分辩率调用不同的CSS.
Jan 08 #Javascript
如何用javascript判断录入的日期是否合法
Jan 08 #Javascript
[IE&FireFox兼容]JS对select操作
Jan 07 #Javascript
javascript中的对象和数组的应用技巧
Jan 07 #Javascript
JavaScript For Beginners(转载)
Jan 05 #Javascript
JavaScript的目的分析
Jan 05 #Javascript
关于JavaScript的gzip静态压缩方法
Jan 05 #Javascript
You might like
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
js对象数组按属性快速排序
2011/01/31 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
django的csrf实现过程详解
2019/07/26 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python实现IOU计算案例
2020/04/12 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python 实现集合Set的示例
2020/12/21 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
法学院方阵解说词
2014/01/29 职场文书
《假如》教学反思
2014/04/17 职场文书
党员创先争优活动总结
2014/05/04 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
2014年学生会工作总结
2014/11/07 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers
MYSQL常用函数介绍
2022/05/05 MySQL
nginx配置指令之server_name的具体使用
2022/08/14 Servers