jQuery没有响应定时事件

时间:2015-05-03 17:47:40

标签: javascript jquery html

我无法让第二个功能对第一个功能带来的变化作出反应。

   var jumbotron = function(){
    var jumbotronCounter = 1
    var jumbotronSwitch = function(){
        var jumbotronTimer = function(){
        jumbotronCounter++
        }
        jumbotronTimer();
        if (jumbotronCounter > 3){
            jumbotronCounter = 1
        }
        console.log(jumbotronCounter);
    }
    setInterval(jumbotronSwitch,7000);

    var jumbotronListener = function(){
    if(jumbotronCounter = 1){
        console.log('first');
    }else if(jumbotronCounter = 2){
        console.log('second');
    }else if(jumbotronCounter = 3){
        console.log('third');
    }
    };
    jumbotronListener();
}

jumbotron();

我喜欢使用“jumbotronListener”在“jumbotronCounter”更改时运行一些代码

1 个答案:

答案 0 :(得分:3)

jumbotronListener确实只运行一次。相反,您可以在每次间隔运行时运行它:

var jumbotron = function () {
    var jumbotronCounter = 1;
    var jumbotronSwitch = function () {
        var jumbotronTimer = function () {
            jumbotronCounter++;
        };
        jumbotronTimer();
        if (jumbotronCounter > 3) {
            jumbotronCounter = 1;
        }
        // Execute the listener every time the interval runs
        jumbotronListener();
        console.log(jumbotronCounter);
    };
    setInterval(jumbotronSwitch, 7000);

    // Run for the first time if you wish:
    jumbotronListener();

    // Set this as function so you can 'use it before declaring it'
    function jumbotronListener() {
        // You had invalid operators. = assigns and === compares (strictly)
        if(jumbotronCounter === 1) {
            console.log('first');
        } else if(jumbotronCounter === 2) {
            console.log('second');
        } else if(jumbotronCounter === 3) {
            console.log('third');
        }
    }
};

jumbotron();

你也有一些丢失的分号,有时它不是问题,因为JavaScript会自动插入它们,但有时也是如此,所以总是确保手动是个好主意将它们插入去的地方。