我正在尝试使用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语句时,背景不会改变。
我错过了什么或做错了什么?
答案 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);
}
}