全局变量未在Javascript中定义

时间:2015-03-09 15:07:43

标签: javascript jquery

在我的情况下为什么没有定义arr?我在jsfiddle的控制台日志中看到了错误。假设它是一个gobal变量,因此它可以在任何函数范围内访问? http://jsfiddle.net/xgpqe4rv/3/

$(function() {

    autoSlide = setInterval(cycle(), 3000);


    arr = [{
            'logo': 'http://placehold.it/50&text=1'
        },

        {
            'logo': 'http://placehold.it/50&text=2'
        },

        {
            'logo': 'http://placehold.it/50&text=3'
        },

        {
            'logo': 'http://placehold.it/50&text=4'
        }

    ];

    $('img').attr('src', arr[0]['logo']);

    function cycle() {

        var i = 1;

        $('img').attr('src', arr[i]['logo']);

        if (i == 3) {

            i = 0;
        } else {
            i++;

        }
    };

    $('#right').click(function() {
        cycle();
    });
});

1 个答案:

答案 0 :(得分:1)

  1. 您没有使用var

  2. 声明变量
  3. autoSlide = setInterval(cycle(), 3000);您将函数的返回值传递给区间,而您需要函数reference

  4. autoSlide = setInterval(cycle, 3000);

    autoSlide = setInterval(function() { cycle() }, 3000);