javascript - jQuery 增量麻烦

标签 javascript jquery

我正在尝试使用一些 jQuery 来浏览具有增量类的部分。但我的 jQuery 代码看起来不对。控制台中有这样的消息

TypeError: nextSection.offset(...) is undefined

这是我的代码:

for(var i = 0; i < 11; i++) {
    $('.project-' + i + '> .arrows > .arrow-bottom').click(function() {
        $('html, body').animate({
            scrollTop: $('.project-' + i+1).offset().top()
        }, 750);
    });

有人知道为什么它不起作用吗?

谢谢!

最佳答案

问题可能出在闭包上,尝试将代码更改为:

for (var i = 0; i < 11; i++) {
  (function(j) {
    $('.project-' + j + '> .arrows > .arrow-bottom').click(function() {
      $('html, body').animate({
        scrollTop: $('.project-' + (j + 1)).offset().top()
      }, 750);
    });
  }(i));
}

您可以引用这篇文章了解有关关闭及其工作原理的更多信息, How do JavaScript closures work?

关于javascript - jQuery 增量麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752483/

相关文章:

javascript - Highcharts x 轴刻度以偏移量开始

javascript - D3 JS - 未捕获类型错误 : Cannot read property 'length' of undefined - seems related to data issue

javascript - 双击提交一次

javascript - 如何在javascript中在屏幕中间显示新窗口?

javascript - 隐形验证码 - 挑战未出现

javascript - 有什么方法可以从我的 javascript 文件中以编程方式调用和执行 pjax 吗?

javascript - 右键菜单,部分区域隐藏

javascript - Bootstrap 形式的光谱颜色选择器插件

javascript - 剑道 ui : Uncaught TypeError: Cannot read property 'toLowerCase' of undefined

javascript - JQuery - 获取 <p>太多溢出!</p> 的 .x .y 坐标,然后 move <div>