作者xam (听说)
看板Ajax
标题Re: [问题] function 里的 setTimeout 与 变数
时间Tue Oct 7 15:08:54 2008
※ 引述《TonyQ (沉默是金)》之铭言:
: 前者在eval的时候是设了一个全域变数 isWait ,
: 而後者读到的时候 , 区域变数 isWait 已经不可见 , 所以出现undefined.
: 建议是采用function的方案来保存scope.
: ex.
: function b() {
: var isWait = true;
: setTimeout(function(){alert(isWait);}, 3000);
: }
我也想请教一下, 跟前一篇的问题类似
如果我要用 setTimeout() 作排程, 一次设定多个 event 要怎麽作?
例如我有以下资料
var s = [[10, "Hello"], [15, "World"], [3, "Hi"]];
想要在 3 秒後显示 Hi
10 Hello
15 World
下面这样的作法只能处理最後一笔, 换成 function 也一样
for(i in s)
{
setTimeout("alert(s[i][1])", s[i][0]*1000);
}
目前的是用, 可行,但是有点怪
for(i in s)
{
callback = "alert('"+s[i][1]+"')";
setTimeout(callback, s[i][0]*1000);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.2.160
1F:推 Fenikso:那样不行是因为i在for结束时候就变成2了 10/07 17:53