一个好的携程定制数据拷贝下选择选择

这是一个模拟携程数据下拉选择的选择,描述了一些比较重要的参数,方便初学者。


*
* id:标识当前插件的父元素
*数据:JSON选择数据(JSON格式)
如果*布尔:真/假数据的数据是被分为真值
*配置:配置数据的内部对象(类型生效bool值为真时)
{
id:数据字段,
名称:数据名,
Alias:数据名的首字母缩写,
类型:数据类型
}
*函数(FN){回调函数,在执行字母时单击生成标记
* /
功能yselect(ID,ydata,bool类型,配置,FN){
var数据{ };
yselect_close = { };
无功name_list = {:{ },{ },B C D:{ } { },{ },E,F:{ } { },H,G::{ },我:{ } { },K,J::{ },L:{ },M:{ } { },O,N:P::{ },{ },问:{ },R:{ },{ },:::{ } { },U,V:{ },W:{ },X:{ },{ } Y:,Z:{ } { } }及其他: / /新数组,防止undefind
无功ydropdowns = document.getelementbyid(ID);
函数(预处理)
var CatalogData = { };
无功branddata = { };
VAR中国= { };
var;
对于(VAR我ydata){
如果(ydata {我} { config。型} = null)
CatalogData.push(ydata {我} { config。ID } +;+ ydata {我} { config。名字} +;+ ydata {我} { config。别名})
其他的
BrandData.push(ydata {我} { config。ID } +;+ ydata {我} { config。名字} +;+ ydata {我} { config。别名} +;+ ydata {我} { config。型})
};
如果(branddata!= ) {
对于(var i = 0;i < branddata.length;i++){
var str = branddata {我}。分裂(';')
如果(STR { 3 } = = 0)(STR { 0 } + china.push + str { 1 } + ';';' + str { 2 });
其他foreign.push(STR { 0 } +;+ str { 1 } +;+ str { 2 });
}
如果(bool){
数据=中国;
返回数据;
{ }人
数据=外来;
数据恢复;
}
其他{ }
数据= CatalogData;
返回数据;返回数据
}
};
功能JSONData(data_name,IDA){ / /预处理返回的数据处理
var;};定义第一个字母
Var Ahtml = {:{ },{ },B C D:{ } { },{ },E,F:{ } { },H,G::{ },我:{ } { },K,J::{ } { },M,L:{ } { },O,N:P::{ },{ },问:{ },R:{ },{ },:::{ } { },U,V:{ },W:{ },X:{ },Y:{ },Z:{ },{ } };其他: / /新数组,防止undefind
无功yselect_box = document.createelement(div); / /新的父元素选择框
yselect_box.id = IDA +_yselect_box ;
无功yselect_div = document.createelement(div); / /集装箱信返回值
无功yselect_letter = document.createelement(P); / / 26字母的容器
yselect_letter.id = IDA + '_yselect_letter
无功stylelink = document.createelement(风格) / /创建皮肤,有两套皮肤可供选择
//stylelink.innerHTML'#'+id+'_Yselect_box{width: = 100%; position:absolute; top:30px; left:0; z-index:9999; background:#fff}#'+id+'_Yselect_box p{background: #469bde; padding:0 10px;}#'+id+'_Yselect_box P span.close{font: 16px/20px Microsoft YaHei; cursor:pointer; position:absolute; top:0; right:0; color:#f00}#'+id+'_Yselect_box.Hide_tag{border: 1px solid #469bde; padding:5px display:; none; min-height:100px; max-height:300px; min-width:300px; max-width:800px; overflow:auto}#'+id+'_Yselect_box P a{padding:5px; line-height: 28px; color:#fff}#'+id+'_Yselect_box.Hide_tag a{width:80px; display:block; text-decoration:none; padding:5px; line-height: 12px; font-size:12px; float:left; color:#444; overflow: hidden; text-overflow:ellipsis; white-空间:nowrap;} # +编号+_yselect_box.hide_tag:悬停{背景:# 469bde;颜色:# FFF;} # +编号+ '_yselect_box .cur {底部边框:2px固体# fac51f };
Stylelink.innerHTML'#'+ida+'_Yselect_box{width: = 100%; min-width:500px; max-width:800px; position:absolute; top:30px; left:0; z-index:9999; background:#fff; border:1px solid #ddd;}#'+ida+'_Yselect_box p{padding:0 10px;}#'+ida+'_Yselect_box P span.close{font: 16px/20px Microsoft YaHei; cursor:pointer; position:absolute; top:0; right:0; color:#666}#'+ida+'_Yselect_box.Hide_tag{padding:5px 10px; display: none; min-height:50px max-height:200px; overflow:auto}#'+ida+'_Yselect_box p; a{padding:5px; line-height: 28px; color:#333; border-bottom:2px solid #bbb; font-weight:bold}#'+ida+'_Yselect_box.Hide_tag a{width:80px; display:block; text-decoration:none; padding:5px; line-height: 12px; font-size:12px; float:left; color:#444; overflow: hidden; 文字溢出:省略;空格:nowrap;} # + IDA + _yselect_box.hide_tag:悬停{背景:# 469bde;颜色:# FFF;} # + IDA + '_yselect_box a.cur {底部边框:2px固体# 469bde;颜色:# 469bde };
对于(var i = 0;i < data_name.length;i++){
var str = data_name {我}。分裂(';')
Tit.push(STR { 2 }。charAt)(0)(。tolocaleuppercase)/判断分配针锋相对的第一封信
};
对于(在j中的var){
如果(name_list乳头{ } } { J)
name_list { } } { J针锋相对。推(data_name {,});
其他name_list。其他。推(data_name {,})
插入name_list } / /数据
对于(VaR K name_list){ / /数据处理,与封隔空隐藏
如果(name_list { }长度K!= 0){
对于(var i = 0;i < name_list {K }。长度;i++){
无功allhtml =+ name_list { } { } K。分裂(';'){ 1 } +;
{克} = allhtml板块;
};
yselect_letter.innerhtml =+ +;
yselect_div.innerhtml ={ } + K +板块;
};
}
var bool =真
yselect_box.innerhtml =+ yselect_letter .innerHTML + x + yselect_div.innerhtml;
ydropdowns.appendchild(yselect_box);
ydropdowns.appendchild(stylelink); / /选择要插入页面
yselect_box.getelementsbytagname('p'){ 0 }。getElementsByTagName('span){ 0 }。onclick=功能yselect_close(){
ydropdowns.removechild(yselect_box)
ydropdowns.removechild(stylelink);
bool = false
单击/单击以销毁选择
yselect_close.close =功能yselect_close(obool){
如果(obool){
ydropdowns.removechild(yselect_box)
ydropdowns.removechild(stylelink);
bool = false
返回
};
如果(bool){
ydropdowns.removechild(yselect_box)
ydropdowns.removechild(stylelink);
}
破坏选择函数
返回yselect_close
}
JSONData(Pretreatment()(),ID)
navlist(ID)
功能navlist(IDS){ / /制表处理功能
创建一个document.getelementbyid(ID + '_yselect_letter)。GetElementsByTagName(A);
var div = document.getelementbyid(ID + '_yselect_box)。GetElementsByTagName('div);
div { 0 }。style.display =块;一个{ 0 }。类名=杂种;
对于(var i = 0;i < a.length;i++){
{索引} = i;
一个{我}。onclick =函数(){
对于(var j = 0;J < a.length;j++){
div { J }。style.display =没有;
一个{ J }。类名= ;
};
div { }。指数。style.display =块;
this.classname =杂种
};
};
};
};