分享

设置了一个div得z-index,希望它总在顶端,可是它下面的一个<select>破土而出...

 WindySky 2009-09-02
在网页里面加上这一段也许可以解决:  
   
  <SCRIPT   LANGUAGE="JavaScript"   defer>  
  <!--  
  var   elms   =   document.getElementsByTagName("select");  
  for   (var   i=0;i<elms.length;i++)  
  if   (elms[i].type=="select-one")   cover(elms[i]);  
   
  function   cover(s){  
  s.style.display="none";  
  s.onmouseout   =   hideSelect;  
  s.onblur   =   hideSelect;  
  s.onchange   =   resetSelectValue;  
  var   t   =   document.createElement("input");  
  t.style.width   =   s.style.width;  
  t.value   =   s.options[s.selectedIndex].text;  
  t.onmouseover   =   showSelect  
  document.body.insertBefore(t,s)  
  }  
  function   showSelect(){  
  var   e   =   event.srcElement;  
  e.style.display="none";  
  e.nextSibling.style.display="inline";  
  }  
  function   hideSelect(){  
  var   e   =   event.srcElement;  
  e.style.display="none";  
  e.previousSibling.style.display="inline";  
  e.blur();  
  }  
  function   resetSelectValue(){  
  var   e   =   event.srcElement;  
  e.previousSibling.value   =   e.options[e.selectedIndex].text  
  e.blur();  
  }  
  //-->  
  </SCRIPT>
考虑到select上原来可能已经定义了onchange事件,上面的代码改为:  
   
  <SCRIPT   LANGUAGE="JavaScript"   defer>  
  <!--  
  var   elms   =   document.getElementsByTagName("select");  
  for   (var   i=0;i<elms.length;i++)  
  if   (elms[i].type=="select-one")   cover(elms[i]);  
   
  function   cover(s){  
  s.onmouseout   =   hideSelect;  
  s.onblur   =   hideSelect;  
  if   (s.onchange==null)  
  s.onchange   =   resetSelectValue;  
  else{  
  s.doOnchange   =   s.onchange;  
  s.onchange   =   function(){this.doOnchange();resetSelectValue()}  
  }  
  var   t   =   document.createElement("input");  
  t.style.width   =   s.offsetWidth;  
  t.value   =   s.options[s.selectedIndex].text;  
  t.onmouseover   =   showSelect  
  document.body.insertBefore(t,s)  
  s.style.display="none";  
  }  
  function   showSelect(){  
  var   e   =   event.srcElement;  
  e.style.display="none";  
  e.nextSibling.style.display="inline";  
  }  
  function   hideSelect(){  
  var   e   =   event.srcElement;  
  e.style.display="none";  
  e.previousSibling.style.display="inline";  
  e.blur();  
  }  
  function   resetSelectValue(){  
  var   e   =   event.srcElement;  
  e.previousSibling.value   =   e.options[e.selectedIndex].text  
  e.blur();  
  }  
  //-->  
  </SCRIPT>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多