IE8中的settimeout问题

发布于 2024-11-28 19:52:32 字数 353 浏览 1 评论 0原文

我在 IE8 中使用 javascript setTimeout 函数时遇到一个奇怪的问题。 我想像这样使用“setTimeout”函数 -

setTimeout(timeout,2000, {name:'saarthak'});

    function timeout(opts)
    {       
        alert('hello ' + opts.name);
    }

setTimeout 的第三个参数是我想要传递给调用函数的参数。这在 FF、Chrome 中工作得很好,但在 IE8 中却不行。

有人知道可以做什么吗?或者有什么办法可以实现这一目标?

谢谢

I am facing a strange issue while using javascript setTimeout function in IE8.
I want to use the 'setTimeout' function like this -

setTimeout(timeout,2000, {name:'saarthak'});

    function timeout(opts)
    {       
        alert('hello ' + opts.name);
    }

the third parameter of the setTimeout is the argument that I want to pass to the calling function. This is working perfect fine in FF, Chrome but not in IE8.

Does anybody have any clue what could be done? Or any work around of achieving this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖兔^ω^ 2024-12-05 19:52:32

那里可能不支持,所以用这个代替:

window.setTimeout(function() {
    timeout({name:'saarthak'});
},2000);

意思是从匿名函数中调用你的函数。

Probably not supported there, so have this instead:

window.setTimeout(function() {
    timeout({name:'saarthak'});
},2000);

Meaning call your function from within anonymous function.

∞梦里开花 2024-12-05 19:52:32

如果您想通过更改变量来调用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);
}

请参阅:http://jsfiddle.net/q4HYz/

If you want to call timeout with changing variable (e.g. calling timeout in loop with lot of names) you can use also in IE8:

var names = ["saarthak", "saarthak2", "saarthak3"]; 
for (var q in names) {
  setTimeout(
    (function(opts){
          return function(){
                    alert ("hello " + opts.name)            
                  }
     })({name:names[q]}), 2000);
}

see: http://jsfiddle.net/q4HYz/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文