下拉选项LQuery
最近学习了一下jquery和js的面向对象的写法,写了一个下拉选项,跟大家分享一下。
001 /**
002 * Query下拉选项处理类
003 *
004 * @author 张成轩
005 * @version 1.0
006 * @email loongzcx@163.com
007 */
008 var LQuery = function() {
009 /* 下拉选项显示内容数组 */
010 this.queryArr = new Array();
011 /* 下拉选项调用对象 */
012 this.queryDoc;
013 /* Query查询标识 */
014 this.queryFlag;
015 /* 其他赋值框对象ID数组 */
016 this.docArr;
017 /* 按键点击事件对象 */
018 this.event;
019 /* 下拉选项显示x坐标 */
020 this.x = 0;
021 /* 下拉选项显示y坐标 */
022 this.y = 0;
023 /* 选项框宽度 */
024 this.width = 150;
025 /* 选项框显示列数 */
026 this.size = 8;
027 /* 是否强制刷新 */
028 this.memory = false;
029 /* 下拉选项显示分隔符 */
030 this.separator = "-";
031 /* Ajax发送连接 */
032 this.sendUrl = "./ajax.html";
033 };
034
035 LQuery.prototype = {
036 /**
037 * 修改Query默认设置
038 *
039 * @param set
040 * 默认设置对象
041 */
042 set : function(set) {
043 // 设置下拉选项宽度
044 if (set.width != undefined) {
045 this.width = set.width;
046 }
047 // 设置下拉选项框显示列数
048 if (set.size != undefined) {
049 this.size = set.size;
050 }
051 // 设置强制刷新标志
052 if (set.memory != undefined) {
053 this.memory = set.memory;
054 }
055 // 设置下拉选项显示分隔符
056 if (set.separator != undefined) {
057 this.separator = set.separator;
058 }
059 },
060
061 /**
062 * Query下拉选项调用入口函数,使用ajax获取下拉数据
063 *
064 * @param docArr
065 * 下拉选项调用对象及赋值对象ID数组
066 * @param flag
067 * Query查询标识
068 * @param event
069 * 按键点击事件,若需要兼容firefox键盘按键处理,需要传入该字段
070 * @param queryArrStr
071 * 指定下拉选项显示信息字符串
072 */
073 show : function(docArr, flag, event, queryArrStr) {
074 // 触发起始时间,用于防止并发
075 this.startTime = new Date();
076 // 按键点击事件对象
077 this.event = event;
078 // 判断是否通过setArr方法设置显示数据
079 if (this.queryArrStr != undefined) {
080 // 设置显示数据字符串
081 queryArrStr = this.queryArrStr;
082 // 清空this中的显示数据字符串,以便再次调用
083 this.queryArrStr = undefined;
084 }
085 // 判断docArr是否为数组
086 if ($.isArray(docArr)) {
087 // 获取docArr第一个元素,并从数组移除第一个元素
088 var doc = docArr.shift();
089 } else {
090 var doc = docArr;
091 // 其他赋值框对象ID数组设置为空
092 docArr = undefined;
093 }
094 // 键盘按键处理
095 if (this.keyUp()) {
096 return;
097 }
098 // 判断是否为同一个触发对象,若默认设置中的memory为true,每次调用都会强制刷新
099 if (doc != this.queryDoc || this.queryArr.length == 0 || this.memory) {
100 // 下拉选项显示内容数组
101 this.queryArr = new Array();
102 // 下拉选项调用对象
103 this.queryDoc = doc;
104 // Query查询标识
105 this.queryFlag = flag;
106 // 其它赋值框对象ID数组
107 this.docArr = docArr;
108 &nbs
补充:web前端 , JavaScript ,