在IE8中使用javascript setTimeout函数时,我遇到了一个奇怪的问题。 我想使用像这样的'setTimeout'函数 -
setTimeout(timeout,2000, {name:'saarthak'});
function timeout(opts)
{
alert('hello ' + opts.name);
}
setTimeout的第三个参数是我想传递给调用函数的参数。这在FF,Chrome中完美无缺,但在IE8中却没有。
有没有人知道可以做些什么?或者实现这一目标的任何工作?
由于
答案 0 :(得分:11)
可能不支持那里,所以请改为:
window.setTimeout(function() {
timeout({name:'saarthak'});
},2000);
意义从匿名函数中调用函数。
答案 1 :(得分:3)
如果您想通过更改变量来调用 timeout (例如,在循环中使用许多名称调用 timeout ),您也可以在IE8中使用
var names = ["saarthak", "saarthak2", "saarthak3"];
for (var q in names) {
setTimeout(
(function(opts){
return function(){
alert ("hello " + opts.name)
}
})({name:names[q]}), 2000);
}