js列表的下拉菜单组件(仿美化控件select)

js列表的下拉菜单组件(仿美化控件select)

ID:8961220

大小:170.50 KB

页数:19页

时间:2018-04-13

js列表的下拉菜单组件(仿美化控件select)_第1页
js列表的下拉菜单组件(仿美化控件select)_第2页
js列表的下拉菜单组件(仿美化控件select)_第3页
js列表的下拉菜单组件(仿美化控件select)_第4页
js列表的下拉菜单组件(仿美化控件select)_第5页
资源描述:

《js列表的下拉菜单组件(仿美化控件select)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、今天是农历23也是小年,在这祝福大家新年快乐!今天给大家分享的是:JS列表的下拉菜单组件,因为目前项目正好要用到这个,所以提前研究了下,看到KISSY也有这么一个组件,所以自己也封装了一个,KISSYdemo链接    KISSY组件名字叫"一个解决大数据列表渲染效率的下拉菜单组件。",他对这个组件做了一次小优化。(假如服务器返回10000条数据或者更多的话,那么我们前端一次性操作10000条数据的话很会影响性能,他们做的优化是:将数组拆分,根据浏览器本身的脚本执行能力进行分批渲染。),但是目前kissydemo上有加载2

2、000条数据的demo,在火狐下还是会有卡住的现象,如果稍不好的话有可能会导致浏览器重启的可能。而我今天做的demo和他们的功能类似,但是唯一不同点就是:假如返回10000条数据的话我没有对数组分批渲染,而是循环10000次把数据保存到一个变量里然后一次性动态加载进来,或许这么做和他们那种操作效率可能会低那么点(具体的我没有测试过)。所以我今天的标题没有和他们那样一起叫。所以今天的标题上:"JS列表的下拉菜单组件".首先要说明的是:一般的需求肯定是满足的,一个下拉框也不可能有那么多数据(一般情况下!)。下面是我做的demo

3、(JS列表的下拉菜单组件)。JSFiddle地址如下: 想要看demo,请轻轻的点击我!我怕疼的!温柔点! 基本原理:   满足的基本功能是:一个基本下拉框,但是他与下拉框不同的是:他既可以输入精确匹配到某一项,也可以点击下拉,也支持键盘上下移操作。但同时当我在输入框输入时候没有匹配到某一项时候,点击文档document那么下拉框隐藏掉,input值为空。同时且支持静态数据渲染又支持post请求渲染数据。基本的配置项如下: parentCls'.parentCls',   输入框父元素class默认inputElemCls

4、 '.inputElem',    目标元素的classinputWidth 100,              目标元素的宽度单位(PX) selectCls  '.caret',           下来小箭头classhoverBg'hoverBg',         鼠标移上去的背景isSelectHidetrue,                 点击下拉框某一项是否隐藏默认truetimeId100,                 默认多少毫秒消失下拉框dataSource[],               

5、    数据源返回的格式如下:静态数据否则的话  (如果数组为空的话)在内部发post请求renderHTMLCallback null              keyup时渲染数据后的回调函数callback null               点击某一项提供回调 如上面配置:其中dataSource如果初始化为空数组的话,那么直接在内部发post请求渲染数据,否则的话也可以渲染静态数据:如下dataSource:[           {text:"列表项1",value:1},           {text:"

6、列表项2",value:2},           {text:"列表项3",value:3},           {text:"列表项4",value:4},           {text:"列表项5",value:5},           {text:"列表项6",value:6},           {text:"列表项7",value:7},           {text:"列表项8",value:8},           {text:"列表项9",value:9},           {text:"

7、列表项10",value:10},           {text:"列表项11",value:11}       ] 如果dataSource的长度大于0的话那么他会按照静态数据渲染,不会发post请求否则的话(如果数组为空,支持发post请求)去渲染数据。对外提供的方法有:setValue()  在外部实例话后可以调用此方法设置初始化值。比如demo页面设置的格式如下:      //设置初始化选择项。       selectedItem:{           value:"4",           text:"

8、列表项4"       } getValue();  获取输入框的值。代码简单的分析下:首先初始化init方法:代码如下:init:function(options){this.config=$.extend(this.config,options

9、

10、{});varself=this,www.qqtop

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。