js菜单伸缩的问题,

发布于 2022-09-12 13:07:09 字数 2194 浏览 14 评论 2

我用JS控制 菜单的伸缩,点击一下,展开,再点击,关闭
我的 mainMenu和subMenu是平行的<div>,所以下面的/2:
mainMenu的onclick="menu(i)"

  1. function menu(id)
  2.           {
  3.               var subEl=document.getElementById("divSub"+id);
  4.               var mainMenus = document.getElementById('divParent'+id).parentNode.childNodes.length/2;
  5.               for( var i=0; i< mainMenus; i++ )
  6.               {
  7.                     alert(i+'-'+id);
  8.                     if(i!==id)
  9.                     {
  10.                         if(subEl)
  11.                          subEl.style.display="none";
  12.                     }
  13.                     else
  14.                     {
  15.                         if(subEl.style.display=='none') subEl.style.display='block';
  16.                         else subEl.style.display='none';
  17.                     }
  18.               }
  19.           }

复制代码问题:我第一次点击后,不展开;当我第二次点击后,展开,但又关闭了?
没有弄明白!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离线来电— 2022-09-15 04:21:52

解决了,最恨粗心犯的错:

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"
          }

时光是把杀猪刀 2022-09-15 04:09:38

改成这样后,怎么什么也不反应:

  1. function menu(id)
  2.           {
  3.               var subID="divSub"+id;
  4.               var mainMenus = document.getElementById(subID).parentNode.childNodes.length/2;
  5.               for( var i=0; i< mainMenus; i++ )
  6.               {
  7.                     if(i!=id)
  8.                     {
  9.                         if(document.getElementById(subID))
  10.                           document.getElementById(subID).style.display="none";
  11.                     }
  12.                     else
  13.                     {
  14.                         if(document.getElementById(subID).style.display=="none") document.getElementById(subID).style.display="";
  15.                         else document.getElementById(subID).style.display="none";
  16.                     }
  17.               }
  18.           }

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文