我正在使用一个柜台来勾选1850年到2010年之间的年份,我希望它能以10年的增量上升。我试图使用div触发.html交换。例如,当'.infinite-container1'从顶部获得350像素时,假设计数器应该从1850变为1860,当'.infinite.container5'从顶部变为350像素时,计数器应该从1860变为1870,所以上。但是,我必须对我的代码或数学或两者都做错了,因为当第一个div通过350px时它只读为2170。帮助
for (var i = 1; i < 31; i=i+5){
$('.infinite-container' + i).waypoint(function () {
document.getElementById("year").innerHTML=(1850+10*i);
}, {offset: 350});
}
答案 0 :(得分:0)
这是非常常见的范围问题。
i
调用请求时waypoint()
的值是循环结束时的值。要保留该值,您可以创建一个新的范围,该范围将在声明值上保留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