javascript - 将每个数组元素保存在for循环javascript中

标签 javascript arrays scroll

var boks = ['.menu-469', '.menu-471', '.menu-470'];
var element = ['#about', '#slider', '#afisha'];

for (var i = 0; i < 2; i++) {
    $('#main-menu li' + boks[i]).click(function() {
       $(window).scrollTo($(element[i]), 800);
       alert(element[i]);
    });
}

这段代码总是滚动到最新的数组元素,在我的示例中是#afisha。我怎样才能实现这样的功能 - 当我点击#main-menu li.menu-469时我的页面向下滚动到 #about ,当我点击#main-menu li.menu-471时它向下滚动到 #slider

提前致谢

最佳答案

当您的 for 循环结束时,i 的值已达到您的最后一个索引,因此您需要创建一个内部自执行函数(闭包)并传递 的实际值我

for (var i = 0; i < 2; i++) {
    (function(i) {
       $('#main-menu li' + boks[i]).click(function() {
          $(window).scrollTo($(element[i]), 800);
          alert(element[i]);
       });
    }(i));
}

关于javascript - 将每个数组元素保存在for循环javascript中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548467/

相关文章:

Javascript:输入栏不起作用或没有给出任何结果

javascript - 如何通过单击按钮(jQuery)推进所选选项

javascript - 过渡在第一个滚动条上不起作用

javascript - 根据从选择菜单中选择的数量输出 Div 数

javascript - 为什么我不能在封闭函数之外重构这个匿名函数?

javascript - AngularJS:数组和深度 $watch 不起作用

c - 从用户获取字符串并为其返回指针数组,所有运行时

php - 如何将下一个日期/时间推送到适合数组中当前日期/时间的数组?

javascript - 如何在底部滚动上激活链接

flutter - 如何在 flutter 中捕捉滚动效果?