超时不起作用

时间:2010-12-02 17:50:51

标签: javascript jquery reload

function updateimage(){
 $("#fileimg").attr("src","secondimage.jpg");
 $('#fileimg').fadeIn('slow');
}
setTimeout(updateimage(), 5000);

这是我试过的代码。它是一个每5秒重新加载图像的代码。但它不起作用。我在IE中收到此错误:参数无效 你们都可以帮助我吗?感谢。

6 个答案:

答案 0 :(得分:9)

您应该将实际函数作为参数传递而不是调用:

setTimeout(updateimage, 5000);

答案 1 :(得分:1)

尝试

setTimeout('updateimage()', 5000);

答案 2 :(得分:1)

2个选项:

setTimeout("updateimage()", 5000)  

或使用函数:

setTimeout(function() {
        updateimage();
}, 5000);

答案 3 :(得分:1)

根据microsoft文档here,参数必须是函数指针或字符串。所以下面的两个方法都可行。

方法1

setTimeout(updateimage, 5000);

方法2

setTimeout("updateimage", 5000);

答案 4 :(得分:0)

setTimeout(updateimage(), 5000);

从updateimage中删除括号,所以它是:

setTimeout(updateimage, 5000);

答案 5 :(得分:0)

正如其他人所说,你说错了。

你有什么:

function updateimage(){
 $("#fileimg").attr("src","secondimage.jpg");
 $('#fileimg').fadeIn('slow');
}

setTimeout(updateimage(), 5000);

执行此操作后,会将updateImage()结果传递给setTimeout()来电。由于你的函数没有返回值,你实际上是在说:

setTimeout(null, 5000);

按名称传递函数,就好像它是该名称的变量一样,确实如此。

setTimeout(updateimage, 5000);