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 相关文章推荐
javascript void(0)的妙用
Oct 21 Javascript
ExtJS的FieldSet的column列布局
Nov 20 Javascript
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
jQuery的Ajax的自动完成功能控件简要说明
Feb 22 Javascript
Visual Studio中js调试的方法图解
Jun 30 Javascript
JavaScript实现Iterator模式实例分析
Jun 09 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
JavaScript中校验银行卡号的实现代码
Dec 19 Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 Javascript
JavaScript多种页面刷新方法小结
Apr 04 Javascript
微信小程序实现的一键复制功能示例
Apr 24 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中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
浅谈js中的this问题
2017/08/31 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
python通过ssh-powershell监控windows的方法
2015/06/02 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python ---lambda匿名函数介绍
2019/03/13 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
数学专业推荐信范文
2013/11/21 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
监察建议书格式
2014/05/19 职场文书
务工证明怎么写
2015/06/18 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL