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

Javascript
一定时间滚动的链接菜单效果
超链接的陷下效果
用js实现的打字效果的带链接的新闻标题
js实现的很酷的连接提示效果
再谈IE中Flash控件的自动激活 ObjectWrap
超级兔子让浮动层消失的前因后果
在线编辑器的实现原理(兼容IE和FireFox)
B/S开发中常用javaScript技术与代码
用JavaScript事件串连执行多个处理过程的方法
Javascript中的Split使用方法与技巧
HTML在线编辑器的基本概念与相关资料
Js+DVML很酷漂亮实用的右键弹出菜单
用js实现的比较经典实用的触发型导航菜单
js中slice()方法的使用说明
基础的prototype.js常用函数及其用法
常用限制input的方法的js代码
又一个图片自动缩小的JS代码
JavaScript触发器详解
理解Javascript的caller,callee,call,apply区别
一个简单的日历代码 (For: FF1+ IE5+ Opr7+)测试

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 325 ::
收藏到网摘: 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>