js菜单伸缩的问题,
我用JS控制 菜单的伸缩,点击一下,展开,再点击,关闭
我的 mainMenu和subMenu是平行的<div>,所以下面的/2:
mainMenu的onclick="menu(i)"
- function menu(id)
- {
- var subEl=document.getElementById("divSub"+id);
- var mainMenus = document.getElementById('divParent'+id).parentNode.childNodes.length/2;
- for( var i=0; i< mainMenus; i++ )
- {
- alert(i+'-'+id);
- if(i!==id)
- {
- if(subEl)
- subEl.style.display="none";
- }
- else
- {
- if(subEl.style.display=='none') subEl.style.display='block';
- else subEl.style.display='none';
- }
- }
- }
复制代码问题:我第一次点击后,不展开;当我第二次点击后,展开,但又关闭了?
没有弄明白!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决了,最恨粗心犯的错:
function menu(id)
{
var subID="divSub"+id;
var mainMenus = document.getElementById(subID).parentNode.childNodes.length/2;
for( var i=0; i< mainMenus; i++ )
{
if(i!=id)
{
if(document.getElementById('divSub'+i))
document.getElementById('divSub'+i).style.display="none";
}
else
{
if(document.getElementById('divSub'+i).style.display=="none") document.getElementById('divSub'+i).style.display="";
else document.getElementById('divSub'+i).style.display="none";
}
}
}
或者:
function menu(id)
{
var subID="divSub"+id;
var mainMenus = document.getElementById(subID).parentNode.childNodes.length/2;
for( var i=0; i< mainMenus; i++ )
{
if(i!=id)
{
if(document.getElementById('divSub'+i))
document.getElementById('divSub'+i).style.display="none";
}
}
if(document.getElementById(subID).style.display=="none")
document.getElementById(subID).style.display=="block"
else
document.getElementById(subID).style.display=="none"
}
改成这样后,怎么什么也不反应:
复制代码