我网上收集的代码(弹出下拉菜单时可以隐藏下拉框,隐藏下拉菜单时显示下拉框):
隐藏下拉框
<script language="JavaScript">
<!--
/*
* 要显示某个层时调用HideElements(oDiv)
* 隐藏某个层时调用ShowElements()
*/
/*
* 隐藏下拉框函数
*/
function HideElements(el)
{
if (!window.__temp__) window.__temp__ = new Array();
var o = ["select","iframe","applet","object"];
for (var i=0; i<o.length; i++)
{
var elms = document.getElementsByTagName(o[i]);
for (var j=0; j<elms.length; j++)
{
var p = getPosition(elms[j]);
var e = getPosition(el);
if (e.left + e.width > p.left && e.left < p.left + p.width &&
e.top + e.height > p.top && e.top < p.top + p.height)
{
window.__temp__[j] = elms[j];
elms[j].style.visibility = "hidden";
}
}
}
function getPosition(el)
{
var e = el.offsetParent, x = el.offsetLeft, y = el.offsetTop;
while (e.tagName != 'BODY')
{
x += e.offsetLeft;
y += e.offsetTop;
e = e.offsetParent;
}
return {
"left": x,
"top": y,
"width": el.offsetWidth,
"height": el.offsetHeight
}
};
};
/*
* 显示下拉框
*/
function ShowElements()
{
var t = window.__temp__;
if (t) {
for (var i=0; i<t.length; i++)
{
t[i].style.visibility = "visible";
}
}
}; //-->
</script>
隐藏下拉框
<script language="JavaScript">
<!--
/*
* 要显示某个层时调用HideElements(oDiv)
* 隐藏某个层时调用ShowElements()
*/
/*
* 隐藏下拉框函数
*/
function HideElements(el)
{
if (!window.__temp__) window.__temp__ = new Array();
var o = ["select","iframe","applet","object"];
for (var i=0; i<o.length; i++)
{
var elms = document.getElementsByTagName(o[i]);
for (var j=0; j<elms.length; j++)
{
var p = getPosition(elms[j]);
var e = getPosition(el);
if (e.left + e.width > p.left && e.left < p.left + p.width &&
e.top + e.height > p.top && e.top < p.top + p.height)
{
window.__temp__[j] = elms[j];
elms[j].style.visibility = "hidden";
}
}
}
function getPosition(el)
{
var e = el.offsetParent, x = el.offsetLeft, y = el.offsetTop;
while (e.tagName != 'BODY')
{
x += e.offsetLeft;
y += e.offsetTop;
e = e.offsetParent;
}
return {
"left": x,
"top": y,
"width": el.offsetWidth,
"height": el.offsetHeight
}
};
};
/*
* 显示下拉框
*/
function ShowElements()
{
var t = window.__temp__;
if (t) {
for (var i=0; i<t.length; i++)
{
t[i].style.visibility = "visible";
}
}
}; //-->
</script>
还有函数中出现tagName为空或不是对象错误
<select></select>
<select></select>
<div style="position:absolute;left:0;top:0;width:100;height:100;background-color:red" onclick="HideElements(this)">
点击让select隐藏
</div>