Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SetInterval表示函数不存在_Javascript_Jquery - Fatal编程技术网

Javascript SetInterval表示函数不存在

Javascript SetInterval表示函数不存在,javascript,jquery,Javascript,Jquery,我不知道我错过了什么。当setInterval开始运行时,它表示该函数不存在。我知道它在那里(我没有包括变量…因为这不是问题)。你知道我为什么会在说函数不存在时出错吗 function midgroundFunc() { $('#midground').css({ backgroundPosition: '0px 0px' }); $('#midground').animate({ backgroundPosition: "(" + mid

我不知道我错过了什么。当setInterval开始运行时,它表示该函数不存在。我知道它在那里(我没有包括变量…因为这不是问题)。你知道我为什么会在说函数不存在时出错吗

function midgroundFunc() {
    $('#midground').css({
        backgroundPosition: '0px 0px'
    });
    $('#midground').animate({
        backgroundPosition: "(" + midX + " " + midY + ")"
    }, midTime, midEase);
}

function foregroundFunc() {
    $('#foreground').css({
        backgroundPosition: '0px 0px'
    });
    $('#foreground').animate({
        backgroundPosition: "(" + foreX + " " + foreY + ")"
    }, foreTime, foreEase);
}

function backgroundFunc() {
    $('#back').css({
        backgroundPosition: '0px 0px'
    });
    $('#back').animate({
        backgroundPosition: "(" + backX + " " + backY + ")"
    }, backTime, backEase);
}
$(document).ready(function() {
    $('#midground').css({
        backgroundImage: 'url(' + midImage + ')'
    });
    $('#foreground').css({
        backgroundImage: 'url(' + foreImage + ')'
    });
    $('#back').css({
        backgroundImage: 'url(' + backImage + ')'
    });
    $.backstretch(backgroundStretch);



    midgroundFunc();
    foregroundFunc();
    backgroundFunc();

    setInterval("midgroundFunc()", midTime);
    setInterval("foregroundFunc()", foreTime);
    setInterval("backgroundFunc()", backTime);

});
这就是我得到的错误:

错误:未定义backgroundFunc 线路:96

错误:未定义midgroundFunc 电话号码:94

错误:未定义foregroundFunc
行:95

直接调用函数,而不是使用字符串。这样可以避免范围界定问题:

 setInterval(midgroundFunc, midTime);
 setInterval(foregroundFunc, foreTime);
 setInterval(backgroundFunc, backTime);
当您向
setInterval
提供一个字符串时,它将在全局上下文中计算该字符串。如果它应该调用的函数不是全局函数,它将无法调用它们

(function () {
    function callMe() { }

    setInterval("callMe()", 1000);
})();

// "callMe()" will be evaluated here,
// where function callMe is not in scope
传递对回调函数的引用,而不是字符串:

setInterval(callMe, 1000);

SetInterval是全局的,无法查看您的函数。