JavaScript setTimeout() 蠻常會使用到的, 使用方法很簡單(如下述), 但是要怎麼將參數帶進去?
setTimeout 使用方式
- 參考: JavaScript Timing Events
- setTimeout 使用方式: var t = setTimeout("javascript statement", milliseconds);
範例
setTimeout("hello", 1000); // 每1秒執行一次 hello().
setTimeout("hello()", 1000); // 每1秒執行一次 hello().
若是要將參數傳進去, 要注意的是 "javascript statement" 此為 函式名稱(Function name), 而且是"字串".
參數帶入的方式如下範例
setTimeout("move_to(" + move_pos + ")", 1000); // 每秒執行一次 move_to(move_pos), move_pos 是變數值.
setTimeout("move_to(" + move_pos_x + "," + move_pos_y + ")", 1000); // 每秒執行一次 move_to(move_pos), move_pos 是變數值.
setTimeout("move_to('" + string + "')", 1000); // 每秒執行一次 move_to(string), string 是變數值(字元、字串).
附註
- 若是 setTimeout(hello, 1000);, (沒有指定 hello 為字串) 會無窮盡的執行 hello(). XD
setTimeout 只會執行一次,若要達到連續執行效果,還是要在執行結束前再呼叫一次 setTimeout。不然就要改用 setInterval。
喔喔, 感謝提點.
我是因為 setTimeout() call 呼叫自己的 Function, 所以會一直無窮盡的跑. XD
Tsung大,如果你是使用jQuery開發的話,我之前有找到一個lib很好用,也寫了一篇文章,供你參考看看:http://goo.gl/z7lKe
問題就是我現在寫的東西, 不能夠用 Framework. :~~~
萬分感謝~ 🙂
這樣可以不用寫成字串~
setTimeout((function(pos) {
return function() { move_to(pos) }
})(move_pos), 1000);
是.... 我覺得寫成字串好像比較短一點. XD