jQuery循环计数器

时间:2013-11-27 20:35:39

标签: jquery loops counter jquery-waypoints

我正在使用一个柜台来勾选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});
}

1 个答案:

答案 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