我有这段代码:
$(document).ready(function(){
var callPage = function(){
$.post('/pageToCall.php');
};
setInterval('callPage()', 60000);
});
它给了我错误ReferenceError: Can't find variable: callPage
。为什么呢?
答案 0 :(得分:9)
尝试setInterval(callPage, 60000);
。
如果将字符串传递给setInterval
,则会在全局范围中评估此字符串。问题是callPage
是本地到ready
回调,它不是全局的。
几乎没有理由将字符串传递给setInterval
(setTimeout
)。总是传递一个函数(以避免这种错误)。
答案 1 :(得分:1)
我怀疑是因为callPage是一个作用于你在document.ready事件中创建的匿名函数的变量。如果将callPage定义移到其外,是否有效?
答案 2 :(得分:1)
function callPage()
{
$.post('/pageToCall.php');
};
$(document).ready(function()
{
setInterval('callPage()', 60000);
});
这是因为callPage的范围是匿名函数