当前位置: 首页 > 图文教程 > 网络编程 > Javascript > js下用层来实现select的title提示属性

Javascript
ext读取两种结构的xml的代码
javascript css float属性的特殊写法
JS网页图片查看器(兼容IE、FF)可控制图片放大缩小移动
jQuery实例入门(表格隔行变色)
js实例入门(简单展开或关闭)
Ext面向对象开发实践代码
仿迅雷焦点广告效果(JQuery版)
JQuery学习笔记 实现图片翻转效果和TAB标签切换效果
传递参数的标准方法(jQuery.ajax)
jquery $.ajax入门应用二
$.ajax json数据传递方法
JavaScript使用技巧精萃[代码非常实用]
js textarea自动下拉(带计数)图
javascript innerHTML、outerHTML、innerText、outerText的区别
输入文字自动变化宽度的INPUT,带计数(图)
一个仿Windows UI的html table,兼容IE和firefox
JS多个矩形块选择效果代码(模拟CS结构)
[原创]关键字空格替换为逗号的js代码
JavaScript CSS创建右击菜单效果代码
js调试工具 Javascript Debug Toolkit 2.0.0版本发布

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 353 ::
收藏到网摘: n/a

用层来实现select的title 提示属性
复制代码 代码如下:

<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>