js中switch语句不生效

 <!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/reset.css"/>
        <style type="text/css">
            li{
                height: 50px;
                width: 150px;
                border: 1px solid red;
                line-height: 50px;
                text-align: center;
                margin: 100px;
            }
            li a{
                display: inline-block;
                height: 50px;
                width: 100%;
                background: cornflowerblue;
                color: #FFF;
                display: none;
            }
            li .active{
                display: inline-block;
            }
            li div{
                /*border: 1px solid blue;*/
                height: 50px;
                overflow: hidden;
            }
        </style>
    </head>
    <body>
        <ul>
            <li id="business">
                <div id="box">
                    <a href="#" class="active">我是商家用户</a>
                    <a href="#">支付宝商家</a>
                    <a href="#">口碑商家</a>
                </div>
            </li>
        </ul>
    </body>
    <script type="text/javascript" src="js/myQuery.js" ></script>
    <script type="text/javascript">
        var aA=$('box').getElementsByTagName('a');
        var timer=null;
        $('business').onmouseenter=function(){
            for(var i=0;i<aA.length;i++){
                aA[i].className='active';
            }
            aA[0].className='';
            slide($('box'),5);
        }

        $('business').onmouseleave=function(){
            slide($('box'),-5);
        }

        function slide(obj,state){
            clearInterval(timer);
            timer =  setInterval(function(){
                var H = parseInt(getStyle(obj,'height'))+state;
                if(H>=100 || H<=50){
//                  state>0 ? H=100 : H=50;
//                  if(H==50){
//                      aA[0].className='active';
//                  }

                    switch (state){
                        case state<0:
                            aA[0].className='active';
                            break;
                        default:
                            break;
                    }

                    clearInterval(timer);
                }
                obj.style.marginTop=(50-H)/2+'px';
                obj.style.height=H+'px';
            },40)
        }
    </script>
</html>

这是仿的支付宝网页版按钮移入变成两个按钮的事件,但是其中switch语句里面,给class名称赋值active的语句不生效,该switch语句和上面注释的if语句想实现同样的效果

ps:$符是我自己封装的取id的函数,不是jQuery

switch不能这样用的,你case state < 0这个会转为 case true/false,而你的state肯定不是布尔变量,switch是===对比的,类型就不一样了,当然执行执行default

你要用swith改成这样

                 switch (state < 0) {
                    case true:
                        aA[0].className = 'active';
                        break;
                    default:
                        break;
                }

switch (state){
case state<0:

case 不能表达式的结果

这种判断的话 为什么不用if语句

你的错误很过很多~~~
1、var aA=$('box').getElementsByTagName('a');这里就有两个错误 一个box没带#号 另一个 jq方法与js原生方法混用不当
2、$('business').onmouseenter=function() 混用

var aA=$('box').getElementsByTagName('a');这里就有两个错误 一个box没带#号 另一个 jq方法与js原生方法混用了

switch不能用表达式的