2013-06-24 34 views
0

JS Fiddle codeMootools的,如何使異步每個循環

var id = 1; 
var lala = new Array(
    'Hello World', 
    'This is my new and fancy console!', 
    'See how its typing?', 
    'Isn\'t that cool ? ', 
    'Try it out for yourself!'); 
lala.each(function (line) { 
    id++; 
    fullID = 'Div' + id; 
    new Element('p', { 
     'id': fullID 
    }).inject($(document.body)); 
    texttype(fullID, line, 100, 100); 
}); 

我試圖調用一個方法在MooTools的每個循環,但問題是,由於JavaScript的本質所有方法調用被稱爲在aprox的。同一時間。我如何防止這種情況發生?我需要從我調用的方法中返回一些東西嗎?有另一種方法嗎?由於計時問題,任意超時並不是一個很好的解決方案。 (請注意,這個代碼是在測試階段,所以其僞造數據和VAR名)

+1

你爲什麼用jQuery來標記這個問題?請適當地標記問題。 –

+0

texttype函數是jQuery afaik。 – Sitethief

回答

1

texttype功能有五分之一的說法,這是被稱爲文本輸入後回調函數:

var doType = function(i) { 
    var fullID = 'Div' + (i + 1); // Don't forget var! 
    new Element('p', { 
     'id': fullID 
    }).inject($(document.body)); 
    texttype(fullID, lala[i], 100, 100, function() { 
     doType(i + 1); 
    }); 
} 
doType(0); 
+0

非常感謝!這樣可行! – Sitethief