function mdiv (){ this.root;//选择框 this.selroot;//选择框选中后更改的区域 this.seldiv;//浮动层最外层 this.cnt;//选项最外层,所有选项都要添加到这里 this.length = 0;//选项数量; this.value;//当前选项值 this.items = [];//所有选项 this.selectIndex = 0;//当前选项序号 this.onchange = function (){};//选择事件函数 } mdiv.activeDiv = null; mdiv.curRoot = null; mdiv.prototype.isIE=function (){ return (navigator.userAgent.toLowerCase().indexOf("ie") > -1); } mdiv.prototype.getOffset=function (element){//计算对象在页面上的位置 var valueT = 0, valueL = 0; do {valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; } while (element); return [valueL, valueT]; } mdiv.prototype.init=function (root,selroot) { var me = this; me.root = root; me.selroot = selroot || root; me.seldiv = mdiv.Create("div",false,"mdiv"); me.cnt = mdiv.Create("div",me.seldiv); me.seldiv.style.display = "none"; try{ document.attachEvent("onmousedown",function(){me.disdiv();}); } catch (ex){ document.addEventListener("mousedown",function(){me.disdiv();}, false); } me.root.onclick = function (){ me.show(); me.HideSome(); me.autoHeight(); } } mdiv.prototype.select=function (obj) { var me = this; var value = obj.getAttribute("sel_value"); me.value = value; me.selectIndex = obj.getAttribute("sel_index"); me.selroot.style.padding = 0; me.selroot.innerHTML = obj.innerHTML; me.selroot.style.paddingTop="10px"; me.onchange(); me.hide(); switch(me.value){ case "book": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="书名"; str+="作者"; document.getElementById('change').innerHTML=str; break; case "qikan": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="标题"; str+="作者"; str+="刊名"; str+="关键词"; str+="作者单位"; document.getElementById('change').innerHTML=str; break; case "baozhi": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="标题"; str+="作者"; str+="来源"; document.getElementById('change').innerHTML=str; break; case "xwlunwen": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="标题"; str+="作者"; str+="授予单位"; str+="关键词"; document.getElementById('change').innerHTML=str; break; case "hylunwen": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="标题"; str+="作者"; str+="关键词"; str+="会议名称"; document.getElementById('change').innerHTML=str; break; case "zl": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="专利名称"; str+="申请号"; str+="发明人"; str+="IPC号"; document.getElementById('change').innerHTML=str; break; case "bz": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="标准号"; str+="标准中文名"; str+="标准英文名"; document.getElementById('change').innerHTML=str; break; case "video": document.getElementById('change').style.display='block'; var str=''; str+="全部字段"; str+="视频名称"; str+="简介"; str+="字幕"; str+="主题词"; document.getElementById('change').innerHTML=str; break; case "info": break; default: document.getElementById('change').style.display='none'; break; } } mdiv.prototype.show=function () { var me = this; var pos = me.getOffset(me.root); var seldiv = me.seldiv; if(seldiv.style.display != "none"){ seldiv.style.display = "none"; return; } var ss=seldiv.style; ss.clear="both"; ss.background="#fff"; ss.border="solid 1px #0bad85"; ss.borderTop="none"; ss.textIndent="3px"; ss.position = "absolute"; ss.left = pos[0] + "px"; ss.zIndex=99999; ss.top= pos[1] + me.root.offsetHeight + "px"; //alert(pos[0]); ss.width = (me.root.offsetWidth-((document.compatMode == "BackCompat")?0:2) )+1+ "px"; ss.display = ""; } mdiv.prototype.hide=function () { var me = this; me.seldiv.style.display = "none"; } mdiv.prototype.disdiv=function () { var me = this; //alert(me.seldiv.style.display); if(me.seldiv.style.display != "none"){ me.hide(); } me.ShowSome(); } mdiv.prototype.add=function (obj,cssHover,value,selected) { var me=this; me.items.push(obj); obj.setAttribute("sel_value",value); try{ me.cnt.appendChild(obj); me.length = me.items.length; var index = me.items.length - 1; obj.setAttribute("sel_index",index); obj.onmouseover=function(){ obj.setAttribute("cssBack",obj.className); obj.className = obj.className + cssHover; } obj.onmouseout = function(){ obj.className = obj.className.replace(cssHover,""); } obj.onmousedown = function(){ me.select(obj); } } catch(ex){} if(selected){ me.select(obj); } } mdiv.Create=function (str,parentObj,cssName){ var obj=document.createElement(str); if(parentObj) {parentObj.appendChild(obj);} else {document.body.appendChild(obj);} if(cssName)obj.className=cssName; return obj; }//简化 mdiv.prototype.autoHeight=function(){}; mdiv.prototype.HideSome=function(){}; mdiv.prototype.ShowSome=function(){};