html下拉菜单的隐藏与显示不出来,这是段js下拉菜单隐藏和显示的代码,有些地方不太明白,请给解释一下。...

这篇博客讨论了JavaScript中根据ID获取对象的函数,并展示了如何实现一个显示和隐藏菜单的事件处理程序。作者指出代码中可能存在的问题,并解释了showMenu.cur用于记录当前激活的菜单对象,同时建议考虑如何记录上一个baseID。博客还涉及了鼠标悬停和离开菜单时的延迟隐藏功能,以及如何避免多次创建同一菜单的逻辑。
摘要由CSDN通过智能技术生成

匿名用户

1级

2012-02-24 回答

这个也不复杂,不过感觉你的这个代码并不好的样子。

//根据id获取对象

function $(id) {

return document.getElementById(id);

}

function showMenu(baseID,divID) {

baseID=$(baseID);

divID=$(divID);

if(showMenu.timer)clearTimeout(showMenu.timer);//清楚定时器

hideCur();//隐藏上个菜单

divID.style.display='block';//显示当前菜单

showMenu.cur=divID;//保存当前菜单对象

if(!divID.isCreate) {//该菜单没创建标志则设置为已创建

divID.isCreate=true;

//divID.timer = 0;

divID.οnmοuseοver=function () {//鼠标放在菜单上时显示

if(showMenu.timer)clearTimeout(showMenu.timer);

hideCur();

divID.style.display='block';

};

function hide() {//鼠标离开菜单1秒后隐藏菜单

showMenu.timer=setTimeout(function () {

divID.style.display='none';

},1000);

}

divID.οnmοuseοut=hide;

baseID.οnmοuseοut=hide;

}

function hideCur() {//隐藏上个菜单

showMenu.cur&&(showMenu.cur.style.display='none');

}

}

追问:

麻烦请指出那里有不规范的地方,我是新手,请指教。。。

追答:

if(!divID.isCreate) {}这里面的

但这个地方只凭你现在的部分代码还是无法判断是不是真的不好,要结合你完整的html才能得出准确的结论。

追问:

showMenu.cur 这个是什么意思?我还需要记录下上个baseID,怎么定义下?

追答:

showMenu.cur 这就是用来记录上一个菜单的对象的。你要记录baseID可以showMenu.baseID或其他名称,这个是任意的,只要你自己知道就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值