我的函数change_slide()收到错误.
ReferenceError: change_slide is not defined在第24:1行.我的代码在这里:
$(document).ready(function() {
function change_slide() {
number = pclass.charAt(6);
number = parseInt(number);
if (number == 5) number = 1;
else number++;
$('.picks').removeClass(pclass);
pclass = 'bgpick' + number;
$('.picks').addClass(pclass);
}
var random = Math.floor((Math.random() * 5) + 1);
var pclass = 'bgpick' + random;
var number;
$('.picks').addClass(pclass);
setInterval('change_slide()', 3000);
$('.next').on('click', function() {
change_slide();
});
});
Run Code Online (Sandbox Code Playgroud)
单击.next上的change_slide()工作,在setInterval中不起作用.
使用字符串参数时setInterval,Javascript代码在全局环境中执行.您应该传递函数引用而不是字符串,然后在本地环境中对其进行评估.
setInterval(change_slide, 3000);
Run Code Online (Sandbox Code Playgroud)
请注意,您应该不把括号后change_slide在这里.这将立即调用该函数,而不是传递对该函数的引用.