为了账号安全,请及时绑定邮箱和手机立即绑定

动画效果是实现了,但为什么console台发生了这样的一个错误呢?

我有2个问题一直搞不清想请教一下大学

  1. 动画效果是实现了,但为什么console台发生了一个错误

  2. 在setTimeout("AddH('"+id+"')",10);中的引号为什么这样写呢?

    http://img1.sycdn.imooc.com//5982caf0000106ca04000140.jpg

  3. <style type="text/css">
    
            body{
                behavior:url(csshover.htc);
            }
    
            *{margin: 0;padding: 0;}
            .top-nav{font-size: 14px;font-weight: bold;list-style: none;}
            .top-nav li{float: left;margin-right: 1px;}
            .top-nav li a{line-height: 34px;text-decoration: none;background-color: #3f240e;color: #fff;display: block;width: 80px;text-align: center;}
            .top-nav ul{list-style: none;display: none;padding: 0;position: absolute;height: 0;overflow: hidden;}
            .top-nav li a:hover{background: url(img/slide.png) 0 0 repeat-x;}
            .note{color: #3f240e;display: block;background: url(img/slide.png) 0 0 repeat-x;}
            .corner{display: block;height: 11px;background: url(img/bird.png) 31px 0 no-repeat;}
            #menuUL{
                height: 0;
                overflow: hidden;
            }
        </style>
        <script type="text/javascript">
            window.onload=function(){
                var Lis = document.getElementsByTagName('li');
                var timer
                for (var i = 0; i < Lis.length; i++) {
                    Lis[i].onmouseover = function(){
                        var u = this.getElementsByTagName("ul")[0];
                        if(u != undefined){
                            u.style.display='block';
                            AddH(u.id);
                        }
                    }
                    Lis[i].onmouseleave = function(){
                        var u = this.getElementsByTagName("ul")[0];
                        if(u != undefined){
                            SubH(u.id);
                        }
                    }
                };
            }
            function AddH (id) {
                // body...
                var ulList = document.getElementById(id);
                var h= ulList.offsetHeight;
                h+=1;
                if (h<=42) {
                    ulList.style.height = h+"px";
                    timer = setTimeout("AddH('"+id+"')",10);
                } else{
                    return;
                };
    
            }
            function SubH(id) {
                var ulList = document.getElementById(id);
                var h= ulList.offsetHeight;
                clearTimeout(timer);
                h-=1;
                if (h>0) {
                    ulList.style.height = h+"px";
                    timer = setTimeout("SubH('"+id+"')",10);
                } else{
                    return;
                };
            }
        </script>
    </head>
    <body>
    <ul class="top-nav">
        <li><a href=""><span>首页</span></a></li>
        <li><a href="">学习中心</a>
            <ul id="menuUL">
                <span></span>
                <li><a href="">前端课程</a></li>
                <li><a href="">手机开发</a></li>
                <li><a href="">后台编程</a></li>
            </ul>
        </li>
        <li><a href="">经典案例</a></li>
        <li><a href="">关于我们</a></li>
    </ul>
    </body>

正在回答

3 回答

就是为了给传过来的 menuUL加个引号:AddH('menuUL'),单引号或双引号都行。使用多个引号时,就会交互使用的,都是引号的作用。刚我试了下,menuUL不加引号,出不来二级菜单。

0 回复 有任何疑惑可以回复我~
#1

加咖啡喵 提问者

懂了 前一个双引用和后一个单引号是一起的,就相当于两个双引号把一个字符串括起来一样
2017-08-07 回复 有任何疑惑可以回复我~

刚就看到一个问题。setTimeout("AddH('"+id+"')",10);括号中的其实就是这样的:AddH('是一个字符串,')是另一个字符串,中间加的是一个变量,变量名叫id。如果传的id是menu,就是setTimeout(AddH('menu'),10);

0 回复 有任何疑惑可以回复我~
#1

加咖啡喵 提问者

我想知道这个单引号是干嘛的呢,不是里面有个双引号了吗,为什么还要加个单引号呢
2017-08-07 回复 有任何疑惑可以回复我~

因为你桌面上没有一个叫img且里面包含slide.png图片的文件夹。

0 回复 有任何疑惑可以回复我~
#1

加咖啡喵 提问者

我没有仔细看灰色的字,谢谢了 那你知道第二个问题吗?
2017-08-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
形形色色的下拉菜单
  • 参与学习       106972    人
  • 解答问题       543    个

本教程从易到难,循循渐进,运用不同技术实现动态下拉菜单

进入课程

动画效果是实现了,但为什么console台发生了这样的一个错误呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信