0

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

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

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

2)在 HTML 文档中构造我的 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 语句时,背景并没有改变。

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

4

2 回答 2

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
    }
}
于 2013-10-24T15:54:16.183 回答
1

首先,我看到 no 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);
    }
}
于 2013-10-24T15:55:31.630 回答