【问题标题】:switch case not working in scroll function in jquery切换案例在jquery的滚动功能中不起作用
【发布时间】:2014-05-26 04:16:23
【问题描述】:

我为滚动网站创建了 jquery 代码。它可以工作,但每次它都会给出 swich case 的默认值。

这是我的html代码

<li>
    <a href="#" id="about">About</a>
</li>
<li>
    <a href="#" id="skills">Skills</a>
</li>
<li>
    <a href="#" id="project">project</a>
</li>
<li>
    <a href="#" id="contact">contact</a>
</li>

这是我的 jquery 代码

$(document).ready(function () {
    $("a").click(function () {
        var value_id = $(this).attr('id');
        var scrolledheight = 2500;
        var pix = 'px';
        alert(value_id);
        var heightvalue = scrolledheight + pix;
        switch (value_id) {
            case about:
                $("html, body").animate({
                    scrollTop: heightvalue
                }, 600);
                break;
            case skills:
                $("html, body").animate({
                    scrollTop: heightvalue
                }, 600);
                break;
            case project:
                $("html, body").animate({
                    scrollTop: $(window).height()
                }, 600);
                alert("project");
                break;
            default:
                $("html, body").animate({
                    scrollTop: $(window).height()
                }, 600);
                alert("contact");

                return false;
        }
    });
});

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: jquery switch-statement


    【解决方案1】:

    更改大小写以匹配字符串:

    case 'about':
    case 'skills':
    

    等等

    【讨论】:

      【解决方案2】:

      因为 case [expression] 是一个字符串,所以把它放在引号里。

      例如:案例“关于”:

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

      【讨论】:

        【解决方案3】:

        变量未定义。将变量更改为字符串

            switch(value_id) {
        case "about":
        $("html, body").animate({ scrollTop: heightvalue}, 600);
              break;
        case "skills":
        $("html, body").animate({ scrollTop: heightvalue}, 600);
              break;
        case "project":
        $("html, body").animate({ scrollTop: $(window).height()}, 600);
                     alert("project"); 
            break;
        default:
            $("html, body").animate({ scrollTop: $(window).height()}, 600);
                 alert("contact"); 
        
            return false;
        }
        

        【讨论】:

        • 我检查了 id 是动态而不是默认的,我认为你的动画代码不起作用。对吗?
        【解决方案4】:

        你需要使用字符串:

        ...
            case "about":
        ...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-14
          • 1970-01-01
          • 2021-12-20
          • 1970-01-01
          • 2011-08-12
          • 2014-04-18
          • 1970-01-01
          相关资源
          最近更新 更多