2013-11-27 54 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