为什么要点两下才展开

<!DOCTYPE html>
<html>
<head>
    <title>Shakespeare's Plays</title>
    <meta charset="utf-8"/>
    <style>
        body {
            background-color: #FFF;
            color: #000;
        }
        div {
            margin-bottom: 10px;
        }
        ul.menu {
            display: none;
            list-style-type: none;
            margin-top: 5px;
        }
        a.menuLink {
            font-size: 16px;
            font-weight: bold;
        }
    </style>
    <script>
        window.onload=initAll;
        function initAll(){
            var aLink=document.getElementsByName('menuLink');
            for(var i=0;i<aLink.length;i++){
                aLink[i].index=i;
                aLink[i].onclick=function(){

                    var aUl=document.getElementsByTagName('ul');
                    
                    if(aUl[this.index].style.display=='none'){
                        aUl[this.index].style.display='block';
                    }
                    else{
                        aUl[this.index].style.display='none';
                    }
                    return false;
                }
            }
        }
    </script>
</head>
<body>
    <h1>Shakespeare's Plays</h1>
    <div>
        <a href="menu1.html" name="menuLink">Comedies</a>
        <ul class="menu" id="menu1">
            <li><a href="pg1.html">All's Well That Ends Well</a></li>
            <li><a href="pg2.html">As You Like It</a></li>
            <li><a href="pg3.html">Love's Labour's Lost</a></li>
            <li><a href="pg4.html">The Comedy of Errors</a></li>
        </ul>
    </div>
    <div>
        <a href="menu2.html" name="menuLink">Tragedies</a>
        <ul class="menu" id="menu2">
            <li><a href="pg5.html">Anthony &amp; Cleopatra</a></li>
            <li><a href="pg6.html">Hamlet</a></li>
            <li><a href="pg7.html">Romeo &amp; Juliet</a></li>
        </ul>
    </div>
    <div>
        <a href="menu3.html" name="menuLink">Histories</a>
        <ul class="menu" id="menu3">
            <li><a href="pg8.html">Henry IV, Part 1</a></li>
            <li><a href="pg9.html">Henry IV, Part 2</a></li>
        </ul>
    </div>
</body>
</html>
阅读 2.1k
1 个回答

这么改一下吧:

window.onload=initAll;
    function initAll(){
        var aLink=document.getElementsByName('menuLink');
        for(var i=0;i<aLink.length;i++){
            aLink[i].index=i;
            aLink[i].onclick=function(){

                var aUl=document.getElementsByTagName('ul');
                
                if(getComputedStyle(aUl[this.index], 'style').display=='none'){
                    aUl[this.index].style.display='block';
                }
                else{
                    aUl[this.index].style.display='none';
                }
                return false;
            }
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题