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
提前致谢
答案 0 :(得分:2)
当你的for循环结束时,i
的值已经到达你的最后一个索引,所以你需要创建一个内部自执行函数(一个闭包)并传递i
的实际值< / p>
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));
}