2012-06-28 72 views
0

我正在使用這個函數來存儲動畫函數,並逐個爲連續動畫調用它。Javascript回調函數不能正常工作

我不知道我在下面的代碼中缺少什麼。我希望它是一個回調函數。

當前此方法只運行一次。

function treasure(){ 

    var blinky = function() 
    { 
     if (funqueue.length > 0) 
     { 
      ((funqueue.shift())(), blinky); 
     } 
     else { return } 

    } 
    blinky(); 

} 

謝謝..

回答

1

如果它打算作爲一個回調,但應該調用括號內傳遞,而不是之後。 (另外,額外的,包裝括號是不是真的有必要。)

funqueue.shift()(blinky); 

原樣,blinky是隻爲comma operator第二個值,並與它無關發生。

而且,如果它不是一個回調,而是隻需要在funqueue各功能之後調用,然後只是:

funqueue.shift(); 
blinky(); 
+0

我把它改成你上面描述,但它仍然呼籲只有一次。有沒有一種方法可以一次又一次地調用閃爍。這樣我就可以運行存儲在Funqueue中的動畫,直到隊列變空。 –

+0

@ Ajax3.14 funqueue中的函數是否接受並調用回調函數?就像:'function(callback){...;回電話(); }'。如果不是,那麼直接調用'blinky'即可。看我的編輯。 –