我无法在Javascript中使用我的功能

Stw*_*sch 0 javascript jquery

我的函数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中不起作用.

Bar*_*mar 5

使用字符串参数时setInterval,Javascript代码在全局环境中执行.您应该传递函数引用而不是字符串,然后在本地环境中对其进行评估.

setInterval(change_slide, 3000);
Run Code Online (Sandbox Code Playgroud)

请注意,您应该把括号后change_slide在这里.这将立即调用该函数,而不是传递对该函数的引用.