关于js写二级菜单 弹出false的问题

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>二级菜单</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        #myMenu {
            margin: 100px auto;
            width: 250px;
            height: auto;
            background-color: cornflowerblue;
        }
        
        span {
            padding: 10px;
        }
        
        a {
            background-color: black;
            display: block;
            text-decoration: none;
            color: chartreuse;
            padding: 10px;
        }
        
        a:hover {
            background-color: chocolate;
        }
        
        .menu {
            padding-top: 10px;
            text-align: justify;
        }
        
        .collapsed {
            height: 21px;
            overflow: hidden;
        }
    </style>
    <script src="../myjstools/tools.js"></script>
    <script>
        window.onload = function() {
            var menu = document.getElementsByTagName("span"); // 应该绑定span  因为  会  覆盖到整个div 如果绑定div
            var openDiv = menu[0].parentNode;
            for (var i = 0; i < menu.length; i++)
                menu[i].onclick = function() {
                    var parentDiv = this.parentNode;
                    toggleClass(parentDiv, "collapsed");
                    if (parentDiv == openDiv)
                        return;
                    addClass(openDiv, "collapsed"); // 重新打开页面时会弹出false
                    openDiv = parentDiv;
                };
        };
    </script>
</head>

<body>

    <div id="myMenu">
        <div class="menu">
            <span class="menuSpan">在线工具</span>
            <a href="#">你猜</a>
            <a href="#">你猜</a>
            <a href="#">你猜</a>
        </div>
        <div class="menu collapsed">
            <span class="menuSpan">支持我们</span>
            <a href="#">合作</a>
            <a href="#">合作</a>
            <a href="#">合作</a>
            <a href="#">合作</a>
        </div>
        <div class="menu collapsed">
            <span class="menuSpan">测试电流</span>
            <a href="#">not</a>
            <a href="#">not</a>
            <a href="#">not</a>
            <a href="#">not</a>
        </div>
    </div>

</body>

</html>

重新加载

当同时关闭三个div时 并且再打开其他另外两个中的任一个时就会弹出false

你没上传tools.js,无法帮你调试。
建议你写for循环和if判断的时候,加上大括号{}
for(){},
if(){},
避免给自己增加麻烦。