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/