[英]I can't use my function in Javascript
I'm getting error with my function change_slide(). 我的函数change_slide()出现错误。 ReferenceError: change_slide is not defined
on line 24:1. ReferenceError: change_slide is not defined
在第24:1行上ReferenceError: change_slide is not defined
。 My code is here: 我的代码在这里:
$(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();
});
});
change_slide() on click .next works, in setInterval doesn't work. 单击.next上的change_slide()可以,在setInterval中不起作用。
When you use a character string argument to setInterval
, the Javascript code is executed in the global environment. 在setInterval
使用字符串参数时,将在全局环境中执行Javascript代码。 You should pass a function reference instead of a character string, then it will be evaluated in the local environment. 您应该传递函数引用而不是字符串,然后它将在本地环境中进行评估。
setInterval(change_slide, 3000);
Note that you should not put parentheses after change_slide
here. 需要注意的是,你不应该把括号后change_slide
这里。 That will call the function immediately, instead of passing a reference to the function. 这将立即调用该函数,而不是传递对该函数的引用。
Take the function declaration out of document ready function
, 从document ready function
删除功能声明,
Also change 也改变
setInterval('change_slide()', 3000);
To 至
setInterval(change_slide, 3000);
Here is modified code 这是修改后的代码
$(document).ready(function() {
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();
});
});
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.