在我的情况下为什么没有定义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();
});
});
答案 0 :(得分:1)
您没有使用var
autoSlide = setInterval(cycle(), 3000);
您将函数的返回值传递给区间,而您需要函数reference
。
autoSlide = setInterval(cycle, 3000);
或
autoSlide = setInterval(function() { cycle() }, 3000);