帮我改个js函数,谢谢

pgameli 2009-03-10 02:09:32
我想做一个下拉菜单效果
鼠标移上去显示一个下拉菜单,鼠标滑下去就隐藏,
页面得多次用到这个js函数,所以得改成通用的
只输入div的id就行

js高手快来帮我看看,

<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(n) {
clearclosewin();
$("submenu").style.display = "block"
}
function clearclosewin() {
if (typeof dodo != "undefined") clearTimeout(dodo);
}
function hiddenit() {
closewinwait();
}
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
function closewin() {
$("submenu").style.display = 'none';
}
</script>


submenu是div的id,已经写死了,想把他改成变量
...全文
204 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
燥动的心 2009-03-10
  • 打赏
  • 举报
回复
学习.
阿非 2009-03-10
  • 打赏
  • 举报
回复

<html>
<head>
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(ID) {
clearclosewin();
$(ID).style.display = "block"
}

function clearclosewin() {
if (typeof dodo != "undefined")
clearTimeout(dodo);

}
function hiddenit(ID) {
closewinwait(ID);
}
function closewinwait(ID) {
dodo = setTimeout("closewin('"+ID+"')", 0200);
}
function closewin(ID) {
$(ID).style.display = 'none';
}
</script>

</head>
<body>

<a onmouseover="showit('menu')" onmouseout="hiddenit('menu')">选项</a>
<div style="background-position: 0% 50%; position: absolute; display: none; width: 155px;
height: 240px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial;
-moz-background-inline-policy: -moz-initial; z-index: 1000; background-color: #007cd6;
text-align: left; left: 500px; top: 350px;" id="menu" onmouseover="clearclosewin('menu')"
onmouseout="hiddenit('menu')">
<a href="#" style="text-decoration: none; font-size: small">
dasfdsfs
<br />
</div>
</body>
</html>

新建个html文件 把代码copy 运行
阿非 2009-03-10
  • 打赏
  • 举报
回复

function closewinwait(ID) {
dodo = setTimeout("closewin('"+ID+"')", 0200);
}


好久不写代码 是不行
pgameli 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 Sandy945 的回复:]
现在不确定的 是  dodo 表示的是什么
[/Quote]
dodo表是的是div显示的时间,
如果不设置这个的话,
菜单失去焦点后div也隐藏了,没法选择下拉菜单的内容
pgameli 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 Sandy945 的回复:]
刚才有些忙

HTML codeonmouseover="clearclosewin('menu')"


onmouseover="clearclosewin()"


clearclosewin() 方法没有参数的
[/Quote]
嗯,刚发现了,
不过去掉了还是不行
实现不了隐藏效果
到这个帖子来说,这个分多
http://topic.csdn.net/u/20090310/15/9e4327fe-f910-4472-b004-c61d438e2fd3.html
阿非 2009-03-10
  • 打赏
  • 举报
回复
现在不确定的 是 dodo 表示的是什么
阿非 2009-03-10
  • 打赏
  • 举报
回复
刚才有些忙


onmouseover="clearclosewin('menu')"



onmouseover="clearclosewin()"


clearclosewin() 方法没有参数的
pgameli 2009-03-10
  • 打赏
  • 举报
回复
分不够我明天再加,为了弄这个效果,我都弄一天了,有点急了
各位帮我看看,
pgameli 2009-03-10
  • 打赏
  • 举报
回复

js用的是你给改过的

<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(ID) {
clearclosewin();
$(ID).style.display = "block"
}

function clearclosewin() {
if (typeof dodo != "undefined") clearTimeout(dodo);
}
function hiddenit(ID) {
closewinwait(ID);
}
function closewinwait(ID) {
dodo = setTimeout("closewin("+ID+")", 0200);
}
function closewin(ID) {
$(ID).style.display = 'none';
}
</script>



这是页面

<a onmouseover="showit('menu')" onmouseout="hiddenit('menu')">选项</a>
<div style="background-position: 0% 50%; position: absolute; display: none; width: 155px;
height: 240px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial;
-moz-background-inline-policy: -moz-initial; z-index: 1000; background-color: #007cd6;
text-align: left; left: 500px; top: 350px;" id="menu" onmouseover="clearclosewin('menu')"
onmouseout="hiddenit('menu')">
<a href="#" style="text-decoration: none; font-size: small">
dasfdsfs
<br />
</div>
阿非 2009-03-10
  • 打赏
  • 举报
回复
你把你现在 用的 贴一下
pgameli 2009-03-10
  • 打赏
  • 举报
回复
还是不行
菜单出来之后总是隐藏不了
阿非 2009-03-10
  • 打赏
  • 举报
回复

<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(ID) {
clearclosewin();
$(ID).style.display = "block"
}

function clearclosewin() {
if (typeof dodo != "undefined") clearTimeout(dodo);
}
function hiddenit(ID) {
closewinwait(ID);
}
function closewinwait(ID) {
dodo = setTimeout("closewin("+ID+")", 0200);
}
function closewin(ID) {
$(ID).style.display = 'none';
}
</script>

pgameli 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 phoebuswei 的回复:]
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
这就完了
我怎么没看见closewin()啊
javascript应该不支持重载
你id里面什么也没有啊
$(ID)就会出错
这是我猜的,javascript报错机制实在不咋地
[/Quote]
嗯,是啊
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
这个函数不知道怎么传

有没有其他的写法?

我这急死了
pgameli 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Sandy945 的回复:]
HTML codeonmouseover="clearclosewin('menu')"


onmouseover="clearclosewin()"

[/Quote]
大哥,小的不才
这菜单出来之后隐藏不了了,网页也有错误
囧..
phoebuswei 2009-03-10
  • 打赏
  • 举报
回复
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
这就完了
我怎么没看见closewin()啊
javascript应该不支持重载
你id里面什么也没有啊
$(ID)就会出错
这是我猜的,javascript报错机制实在不咋地
阿非 2009-03-10
  • 打赏
  • 举报
回复

onmouseover="clearclosewin('menu')"



onmouseover="clearclosewin()"
xsm545 2009-03-10
  • 打赏
  • 举报
回复
学习....帮顶
mdh_zl 2009-03-10
  • 打赏
  • 举报
回复
ha
pgameli 2009-03-10
  • 打赏
  • 举报
回复
怎么还是不行呢
网页有错误,我是这样写的啊

<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(ID) {
clearclosewin();
$(ID).style.display = "block"
}

function clearclosewin() {
if (typeof dodo != "undefined") clearTimeout(dodo);
}
function hiddenit(ID) {
closewinwait(ID);
}
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
function closewin(ID) {
$(ID).style.display = 'none';
}
</script>




<a onmouseover="showit('menu')" onmouseout="hiddenit('menu')">选项</a>
<div style="background-position: 0% 50%; position: absolute; display: none; width: 155px;
height: 240px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial;
-moz-background-inline-policy: -moz-initial; z-index: 1000; background-color: #007cd6;
text-align: left; left: 500px; top: 350px;" id="menu" onmouseover="clearclosewin('menu')"
onmouseout="hiddenit('menu')">
<a href="" style="text-decoration: none; font-size: small">
<img src="images/menubit.gif" style="border: 0px; vertical-align: middle" />dasfdsfs</a>
<br />

</div>
阿非 2009-03-10
  • 打赏
  • 举报
回复

<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}
function showit(ID) {
clearclosewin();
$(ID).style.display = "block"
}

function clearclosewin() {
if (typeof dodo != "undefined") clearTimeout(dodo);
}
function hiddenit(ID) {
closewinwait(ID);
}
function closewinwait() {
dodo = setTimeout("closewin()", 0200);
}
function closewin(ID) {
$(ID).style.display = 'none';
}
</script>

加载更多回复(1)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧