Re: [問題] function 裡的 setTimeout 與 變數

看板Ajax作者 (聽說)時間15年前 (2008/10/07 15:08), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/6 (看更多)
※ 引述《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

10/07 17:53, , 1F
那樣不行是因為i在for結束時候就變成2了
10/07 17:53, 1F
文章代碼(AID): #18wmi81r (Ajax)
討論串 (同標題文章)
文章代碼(AID): #18wmi81r (Ajax)