jquery开关案例背景变化

时间:2013-10-24 15:49:24

标签: javascript jquery html css

我正在尝试使用jquery根据javascript开关案例将背景更改为新的URL。我做了三件事:

1)在我的HTML文档中有这个:

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>

2)在HTML doc中构造我的Switch案例(我知道它正在被调用),如下所示:

function calcBackground() {
switch(counter) {
case 1:
    $('body').toggleClass('background1');
    break;
case 2:
    $('body').toggleClass('background2');
    break;
case 3:
    $('body').toggleClass('background3');
    break;
default:
    //nothing of note here
}
}

3)把它放在我的CSS中:

body {
    background-repeat: no-repeat;
    background-image:url('http://hdwallpicture.com/wp-content/uploads/2013/08/Blue-Widescreen-HD-Wallpapers.jpg');
    background-size: 100% auto;
}

body.background1 {
  background-image:url('http://hdwallpicture.com/wp-content/uploads/2013/08/Blue-Widescreen-HD-Wallpapers.jpg');
}

body.background2 {
  background-image:url('http://3.bp.blogspot.com/-vmh1i-b3XNY/T9iTjPGKYZI/AAAAAAAAFwo/jv3Yysxcl9Q/s1600/Blue-wallpaper-23.jpg');
}

body.background3 {
  background-image:url('http://wallpaper4god.com/wallpapers/blue_1269_1076x768.jpg');
}

注意:body.background1的URL与故意页面的默认URL背景相同。在调用switch语句时,背景不会改变。

我错过了什么或做错了什么?

2 个答案:

答案 0 :(得分:3)

你永远不会删除任何类...如果这就像幻灯片一样,你最终会得到拥有所有三个类的主体。

试试这个:

function calcBackground() {
    switch (counter) {
        $('body').removeClass('background1 background2 background3');
        case 1:
            $('body').addClass('background1');
            break;
        case 2:
            $('body').addClass('background2');
            break;
        case 3:
            $('body').addClass('background3');
            break;
        default:
            //nothing of note here
    }
}

答案 1 :(得分:1)

首先,我看不到counter,所以我只能假设它没有设置。这样的功能会更清晰:

function calcBackground() {
    if(typeof counter !== 'undefined'){
        $('body').removeClass('background1 background2 background3')
                 .addClass('background' + counter);
    }
}

或者,如果您的身体(并且从不)有任何其他类:

function calcBackground() {
    if(typeof counter !== 'undefined'){
        $('body').attr('class', 'background' + counter);
    }
}