我想我一定错过了一些非常明显的东西。使用这段代码,我想计数并触发计时器的背景变化;但是它不传递变量,每次计时器调用该函数时它都会传递一个 undefined variable 。
值得注意:
- 查看控制台 - 没有错误
- 我知道 Jquery 可能会更好,但由于一些令人讨厌的遗留问题(这是另一个问题),该网站无法使用 jquery
代码
<script>
/* Get the body element */
var body = document.getElementsByTagName('body')[0];
/* Call the function */
changebackground();
/* Set the starting count */
var changecount = 1;
/* Change function */
function changebackground(changecount) {
if(changecount=1){
body.style.backgroundImage = 'url(/templates/images/background_1.jpg)';
changecount = 2;
}
else if (changecount=2) {
body.style.backgroundImage = 'url(/templates/images/background_2.jpg)';
changecount = 3;
}
else {
body.style.backgroundImage = 'url(/templates/images/background_3.jpg)';
changecount = 1;
}
setInterval(function(changecount){changebackground();},3000);
}
</script>
最佳答案
几乎没有什么地方是错误的。
比较运算符不正确。您也不需要将变量传递给 changebackground()
函数,因为该变量是全局变量。
这应该有效。
/* Get the body element */
var body = document.getElementsByTagName('body')[0];
/* Call the function */
changebackground();
/* Set the starting count */
var changecount = 1;
/* Change function */
function changebackground() {
if (changecount == 1) {
body.style.backgroundImage = 'url(/templates/images/background_1.jpg)';
changecount = 2;
} else if (changecount == 2) {
body.style.backgroundImage = 'url(/templates/images/background_2.jpg)';
changecount = 3;
} else {
body.style.backgroundImage = 'url(/templates/images/background_3.jpg)';
changecount = 1;
}
// line just added for debugging
alert(changecount);
setInterval(changebackground(), 3000);
}
关于JavaScript 如果计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658368/