2012-03-11 22 views
0

創建功能彙集線所以我有這樣的code that simulates function linefn1delayfn2delay,... fnN - 調用一個函數,從行刪除它睡了一下,等等)。的Javascript有延時

我遇到了一個奇怪的問題 - 我沒有看到任何延遲。爲什麼,我的代碼有什麼問題?

+0

'openWindowDelayedPool.add(appendStuff())'會調用'立即appendStuff'並通過返回值'openWindowDelayedPool.add'。你想要傳遞函數,而不是調用它。但是,你的代碼一定還有其他問題,因爲我也會得到錯誤* Uncaught TypeError:不能調用undefined *的方法'call'(這是在你的'setTimeout'回調函數中,該參數映射另一個'val')。但即使這些東西是固定的,也是行不通的。這個功能的整體邏輯似乎並不正確。 – 2012-03-11 19:02:41

回答

1

您的第一個問題是您立即致電append,而不是傳遞將調用append的函數。

openWindowDelayedPool.add($('.container').append('<p>Test</p>')); 

應該

openWindowDelayedPool.add(function(){ 
    $('.container').append('<p>Test</p>') 
}); 

即使一旦你解決這個問題,它不會正常不過的工作,第一個將運行,但隨後所有後續調用將簡單地發現,isRunning是真實的,而不是執行。

此外,在意見中提到的@FelixKing:

setTimeout(function(val){ 

不正確。你不想傳遞一個參數給這個函數,只需在其中使用val即可。

setTimeout(function(){ 
+0

我試圖[修復](http://jsfiddle.net/UcsuB/2/),但我只有一個「測試」,而不是6 ...是否因爲刪除刪除所有相同的VAL? – myWallJSON 2012-03-11 19:14:20

+0

Yey - got it =)[here](http://jsfiddle.net/UcsuB/3/) – myWallJSON 2012-03-11 19:41:29