六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 279|回复: 0

非Select标签的选择框

[复制链接]

升级  23.33%

19

主题

19

主题

19

主题

秀才

Rank: 2

积分
85
 楼主| 发表于 2013-2-8 00:59:36 | 显示全部楼层 |阅读模式
用select做选择框与input放在一起总不太和谐.换了吧.

Code
var Report={};
Report.getOffset = function getOffset(e){
   var t = e.offsetTop;
   var l = e.offsetLeft;
   var w = e.offsetWidth;
   var h = e.offsetHeight-2;
   while(e=e.offsetParent){
      t += e.offsetTop;
      l += e.offsetLeft;
   }
   return{
      top : t,left : l,width : w,    height : h
   }
}
Report.createSelect = function createSelect(obj,filterArray){
   var offset= this.getOffset(obj);//在firefox下必须加this,不然报找不到函数。
   var size = 0;
$.each(filterArray, function(){
   size++;
}
);
var oldDiv = $("#div_" + obj.id);
if(oldDiv.length){
   if(oldDiv.css("display")=='none'){
      oldDiv.css("display","block");
   }
   else{
      oldDiv.css("display","none");
   }
}
else{
   var cDiv = $("<div></div>");
   cDiv.attr("id","div_" + obj.id);
   cDiv.css("position","absolute");
   cDiv.css("width",(offset.width) + "px");
   cDiv.css("height",size *20 + "px");
   cDiv.css("top",(offset.top+offset.height+2) + "px");
   cDiv.css("left",offset.left + "px");
   cDiv.css("background","#f7f7f7");
   cDiv.css("border","1px solid silver");
   $(document.body).append(cDiv);
   
   var uUl = $("<ul></ul>");
   uUl.attr("id","ul_" + obj.id);
   uUl.css("listStyle","none");
   uUl.css("margin","0");
   uUl.css("padding","0");
   uUl.css("fontSize","12px");
   cDiv.append(uUl);
   
$.each(filterArray, function(key, value){
   var lLi=$("<li></li>");
   lLi.attr("id","li_" + key);
   lLi.attr("value",key);
   lLi.css("textIndent","4px");
   lLi.css("height","20px");
   lLi.css("lineHeight","20px");
   lLi.text(value);
   uUl.append(lLi);
}
);
var liObj=$("li",uUl);
$.each(liObj, function(i,eachLi){
   eachLi.onmouseover=function(){
      this.style.background="#cccccc";
      this.style.color="red";
   }
   eachLi.onmouseout=function(){
      this.style.background="white";
      this.style.color="black";
   }
   eachLi.onclick=function(){
      obj.value= this.value;
      cDiv.css("display","none");
   }
});
}}


test.html

Code
<input type="text"
readonly="readonly">
</input>
效果:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表