JavaScript 如果计数

标签 javascript function timer

我想我一定错过了一些非常明显的东西。使用这段代码,我想计数并触发计时器的背景变化;但是它不传递变量,每次计时器调用该函数时它都会传递一个 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);
}

Working Jsfiddle

关于JavaScript 如果计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658368/

相关文章:

javascript - module.js 错误 :341 when trying to add android platform to ionic from command line

javascript - Bootstrap 的 JavaScript 需要 jQuery 而 jQuery 已经加载

javascript - slice() 方法/Javascript

Javascript - 数组 - 将一个数组中的值分配给另一个数组中的字符串

android - 为什么 scheduleAtFixedRate(task, delay, period) 没有按计划工作?

php - PHP设置计时器,然后调用一个函数

javascript - 在 JavaScript 代码中添加跨度以更改显示数字的颜色

php - 需要帮助将 mysql_fetch_array 中的值插入到函数中

php - PHP 函数中的简单 `return` 是否只是过早地结束函数?

java - Java 中定时器和线程的困难