切换案例在jquery中的滚动函数中不起作用

时间:2014-05-26 04:16:24

标签: jquery switch-statement

我为滚动网站创建了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;
        }
    });
});

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

4 个答案:

答案 0 :(得分:0)

更改案例以匹配字符串:

case 'about':
case 'skills':

等等

答案 1 :(得分:0)

由于案例[表达式]是一个字符串,请将其放在引号中。

例如:case“about”:

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

答案 2 :(得分:0)

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

    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;
}

答案 3 :(得分:0)

您需要使用字符串:

...
    case "about":
...