2013-03-28 26 views
0

如何添加到最後的數字+1,每次文檔間隔? 我得到這個:jsfiddle.net/zAt7C/1/jQuery循環。添加一個到prev數字

$(document).ready(function() { 
    // verification 
    $('title').text('jQuery is working!'); 

    // loop 
    setInterval(function() { 
     for (var i = 1; i < 2; i++) { 
      $('.repeat').append(i + ' '); 
     }; 
    }, 1000); 
}); 
+0

是什麼意思blankblaNk?總的想法是,可以使用問題框中的所有空間來發布代碼。雖然jsfiddle很有幫助,但你也應該在這裏包含你的代碼,以防萬一鏈接斷開,amd讓人們不必離開堆棧溢出。如果這個關閉,你仍然可以編輯你的文章重新打開。祝你好運! :-) – jmort253 2013-03-28 01:55:05

回答

0

jsFiddle demo

其實答案在於使用可變範圍。變量i僅適用於setInterval回調函數的範圍。在該函數之前和之後,變量不存在,所以它不能保存一個值......每次函數啓動時它都會重新初始化。如果我們將變量移動到setTimeout函數之外,它將成爲更大範圍的一部分,即$(document).ready事件處理函數的一部分。它將保持適用於該範圍內的所有其他範圍(在本例中爲setTimeout回調)。

閱讀Javascript的好書是Douglas Crockford的Javascript: The Good Parts。還有一個很好的文章,解釋的範圍和封閉在How do JavaScript closures work?

+0

謝謝你的描述!這工作! – 2013-03-28 02:02:26

0

LIVE DEMO

var i = 0; 
setInterval(function() { 
    $('.repeat').append(' '+ (i++)); 
}, 1000); 
+0

是的男人!簡單和工作 – 2013-03-28 02:01:31

+0

@歡迎ArnoldsKļavenieks;) – 2013-03-28 02:01:44

0
$(document).ready(function() { 
    // verification 
    $('title').text('jQuery is working!'); 

    (function func (i) { 
     setTimeout(function() { 
      $('.repeat').append(i + ' '); 
      i += 1; 

      if (i <= 10) { 
       func(i); 
      } 
     }, 1000); 
    }(0)) 
}); 

Fiddle

相關問題