2013-11-27 55 views
0

我使用計數器勾選了1850年至2010年之間的年份,我希望它以10年爲增量遞增。我正在嘗試使用div觸發.html交換。例如,當'.infinite-container1'從頂部獲得350pixels時,假設計數器應該從1850年到1860年,當'.infinite.container5'從頂部變爲350pixels時,計數器應該從1860年變爲1870年,所以上。但是,我必須在我的代碼或數學或兩者都做錯了,因爲當第一個div傳遞350px時它只讀爲2170。幫幫我?jQuery循環計數器

for (var i = 1; i < 31; i=i+5){ 
    $('.infinite-container' + i).waypoint(function() { 
     document.getElementById("year").innerHTML=(1850+10*i); 
    }, {offset: 350}); 
} 
+2

如果你正在使用jQuery,爲什麼要使用的document.getElementById? – geedubb

回答

0

這是很常見的範圍問題。

waypoint()呼叫請求時,i的值是循環結束時的值。爲了保持價值,你可以創建新的範圍,誰就會在聲明中值保持i

for (var i = 1; i < 31; i=i+5){ 
    (function(i) { 
     $('.infinite-container' + i).waypoint(function() { 
      document.getElementById("year").innerHTML=(1850+10*i); 
     }, {offset: 350}); 
    })(i); 
} 

我建議您閱讀這篇博客:http://www.2ality.com/2013/05/quirk-variable-scope.html

+0

,似乎在做詭計!謝謝 – user3042946