我有这样的代码:的ReferenceError:找不到变量错误
$(document).ready(function(){
var callPage = function(){
$.post('/pageToCall.php');
};
setInterval('callPage()', 60000);
});
,它给我的错误ReferenceError: Can't find variable: callPage
。为什么?
我有这样的代码:的ReferenceError:找不到变量错误
$(document).ready(function(){
var callPage = function(){
$.post('/pageToCall.php');
};
setInterval('callPage()', 60000);
});
,它给我的错误ReferenceError: Can't find variable: callPage
。为什么?
尝试setInterval(callPage, 60000);
。
如果将字符串传递给setInterval
,则该字符串将在全局范围中进行评估。问题是callPage
是本地到ready
的回调,它不是全局的。
几乎没有任何理由将字符串传递给setInterval
(setTimeout
)。总是传递一个函数(以避免这种错误)。
是啊...你正在传递一个函数的引用。不是字符串。 –
@Darhazer:这是没有必要让社区维基... –
@Felix克林我拒绝从你的回答赢得声誉分,其实我想投给你的解释:) –
我怀疑这是因为callPage是一个变量作用域为你创建的的document.ready事件的匿名函数。如果您将callPage定义移出该外部,它是否工作?
function callPage()
{
$.post('/pageToCall.php');
};
$(document).ready(function()
{
setInterval('callPage()', 60000);
});
这是因为callPage的范围是匿名函数
你callpage期望。函数返回没有它看起来! – zod
@zod:callPage的返回值(或缺少)是无关紧要的。正如Bryan所建议的那样,相关的可能是setInterval的第一个参数的类型。 –