超时不起作用

问题描述 投票:0回答:6
function updateimage(){
 $("#fileimg").attr("src","secondimage.jpg");
 $('#fileimg').fadeIn('slow');
}
setTimeout(updateimage(), 5000);

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

javascript jquery reload
6个回答
1
投票

2个选项:

setTimeout("updateimage()", 5000)  

或使用功能:

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

9
投票

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

setTimeout(updateimage, 5000);

1
投票

尝试

setTimeout('updateimage()', 5000);


1
投票

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

方法1

setTimeout(updateimage, 5000);

方法2

setTimeout("updateimage", 5000);

0
投票
setTimeout(updateimage(), 5000);

从更新映像中删除括号,因此它是:

setTimeout(updateimage, 5000);

0
投票

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

你有什么:

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

setTimeout(updateimage(), 5000);

执行时,这会将updateImage()的结果传递给setTimeout()调用。由于你的函数没有返回任何值,你实际上是在说:

setTimeout(null, 5000);

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

setTimeout(updateimage, 5000);
© www.soinside.com 2019 - 2024. All rights reserved.