js下用层来实现select的title提示属性


Posted in Javascript onFebruary 23, 2010
<script> 
             function opts(selectObj){ 
                         var optDivs=document.createElement("div"); 
                         var objTable=document.createElement("table"); 
                         var objTbody=document.createElement("tbody"); 
                         optDivs.style.zIndex = "100"; 
                         objTable.style.zIndex = "100"; 
                         objTable.width=selectObj.style.width;     
                         objTable.border = "0"; 
                         objTable.cellPadding = "0"; 
                         objTable.cellSpacing = "0"; 
                         objTable.style.paddingLeft = "2";     
                         objTable.style.fontFamily = "Verdana, Arial, Helvetica, sans-serif";                          var e = selectObj; 
                         var absTop = e.offsetTop; 
                         var absLeft = e.offsetLeft; 
                         var absWidth = e.offsetWidth; 
                         var absHeight = e.offsetHeight; 
                         while(e = e.offsetParent){ 
                         absTop += (e.offsetTop+0.3); 
                         absLeft += e.offsetLeft; 
                         } 
                         with (objTable.style){ 
                         position = "absolute"; 
                         top = (absTop + absHeight) + "px"; 
                         left = (absLeft+1) + "px"; 
                         border = "1px solid black"; 
                         tableLayout="fixed"; 
                         wordBreak="break-all"; 
                         } 
                         var options = selectObj.options; 
                         var val=selectObj.value; 
                            if (options.length > 0){ 
                                 for (var i = 0; i < options.length; i++){ 
                                     var newOptDiv = document.createElement("td"); 
                                     var objRow=document.createElement("tr"); 
                             newOptDiv.name=options[i].value; 
                             newOptDiv.innerText=options[i].innerText; 
                             newOptDiv.title=options[i].title; 
                             newOptDiv.onmouseout = function() {this.className='smouseOut';val=selectObj.value}; 
                             newOptDiv.onmouseover = function() {this.className='smouseOver';val=this.name;}; 
                             newOptDiv.className="smouseOut"; 
                             newOptDiv.style.width=40; 
                             newOptDiv.style.cursor="default"; 
                             newOptDiv.style.fontSize = "11px"; 
                             newOptDiv.style.fontFamily = "Verdana, Arial, Helvetica, sans-serif"; 
                             objRow.appendChild(newOptDiv); 
                             objTbody.appendChild(objRow); 
                             } 
                            } 
                     
                            objTbody.appendChild(objRow); 
                            objTable.appendChild(objTbody); 
                            optDivs.appendChild(objTable); 
                            document.body.appendChild(optDivs); 
                             var IfrRef = document.createElement("div"); 
                            IfrRef.style.position="absolute"; 
                            IfrRef.style.width = objTable.offsetWidth; 
                            IfrRef.style.height = objTable.offsetHeight; 
                            IfrRef.style.top = objTable.style.top; 
                            IfrRef.style.left = objTable.style.left; 
                            IfrRef.style.backgroundColor = document.bgColor; 
                            document.body.appendChild(IfrRef); 
                            objTable.focus(); 
                            objTable.onblur=function() {choose(selectObj,val,optDivs,IfrRef)}; 
         } 
         function choose(objselect,val,delobj,delobj2){ 
             objselect.value=val; 
             document.body.removeChild(delobj); 
             document.body.removeChild(delobj2); 
         } 
         </script> 
         
         <STYLE> 
                    .smouseOut { 
                            background: document.bgColor; 
                            color: #000000; 
                    } 
                    .smouseOver { 
                            background: rgb(0,128,128); 
                            color: #FFFFFF; 
                            cursor: pointer; 
                    } 
            </style> 
         
         <select id='selId'    style='width:50px' class='black' onclick="opts(this);"> 
                <option value='1' title="One....">111</option> 
                <option value='2' title="Two....">222</option> 
            </select>
Javascript 相关文章推荐
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
返回函数的JavaScript函数
Jun 14 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
基于jQuery实现数字滚动效果
Jan 16 Javascript
详解Angular2响应式表单
Jun 14 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
js表单序列化判断空值的实例
Sep 22 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
使用vue制作滑动标签
Sep 21 Javascript
create-react-app中添加less支持的实现
Nov 15 Javascript
详解Vue的七种传值方式
Feb 08 Vue.js
jquery 锁定弹出层实现代码
Feb 23 #Javascript
javascript document.compatMode兼容性
Feb 23 #Javascript
js操作ajax返回的json的注意问题!
Feb 23 #Javascript
javascript入门基础之私有变量
Feb 23 #Javascript
第一个JavaScript入门基础 document.write输出
Feb 22 #Javascript
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 #Javascript
jQuery 操作下拉列表框实现代码
Feb 22 #Javascript
You might like
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
js常用函数 不错
2006/09/08 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
python的Tqdm模块的使用
2018/01/10 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
python调试神器PySnooper的使用
2019/07/03 Python
pandas的qcut()方法详解
2019/07/06 Python
python实现飞船大战
2020/04/24 Python
个性大学生自我评价
2013/12/04 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
spring boot中nativeQuery的用法
2021/07/26 Java/Android
对讲机的最大通讯距离是多少
2022/02/18 无线电
python函数的两种嵌套方法使用
2022/04/02 Python
MySQL中order by的执行过程
2022/06/05 MySQL