可能重複我的頭:
Javascript closure inside loops - simple practical exampleJavaScript進行環閉合......似乎無法環繞此
我怎樣才能使這項工作?
// Phrases
var phrases = new Array();
phrases[0] = 'Phrase 1';
phrases[1] = 'Phrase 2';
phrases[2] = 'Phrase 3';
for (var i = 0; i < phrases.length; i++) {
var content = phrases[i];
$('#phrase').html(content).slideDown('slow').delay(1000).fadeOut('slow');
};
這裏的HTML:
<p id="phrase"></p>
薪火內容可變進HTML()功能我注意到,內容總是等於陣列中的最後一句,和循環運行幻燈片/延遲/淡入淡出功能3次。
我知道這是關於for循環中的閉包,我已經看過無數的例子,但我無法繞開它。有人可以向我解釋和解釋這一個嗎?編輯:
編輯:道歉,因爲之前不清楚,我編輯了這個問題,包括HTML和有問題的陣列。
功能性:不同短語在短語保持[]陣列,我想短語插入<p>
元件,然後向下滑動該元素,離開它在屏幕上的第二,然後褪色它出。然後我想轉到短語[]數組中的下一個短語並執行相同的功能。
循環實際上在做什麼是選擇具有該id的元素並在循環的每次迭代中寫入它,因此它每次都覆蓋它直到最後一次迭代。解釋你想做什麼 – 2011-03-24 02:54:12
謝謝蠟筆小新,我已經更新了這個問題以反映我正在嘗試做什麼。 – FrediDoo 2011-03-24 03:18:06
現在不延遲(1000)實際返回控制並插入一個任務,從現在開始1秒,或者從現在開始1000秒(原型需要幾秒鐘)?如果是這樣,循環將執行得非常快,然後在1秒鐘後,所有排隊的屏幕變化將很快發生。另外,我不確定delay()的語句在語法上是否有效,至少在與prototype.js一起使用時是如此。雖然我沒有嘗試過。 – Paul 2011-03-24 04:32:07