我希望我误解了吊装的工作原理,但是我对为什么不将返回的i ++吊装到var i的初始声明中感到困惑。对于上下文,我试图创建利用scrollIntoView()在div之间循环的上一个/下一个按钮。
我让它按预期的方式用于下一个按钮(单击并循环到下一个div),但问题是我似乎无法将i的当前值存储在for循环之外,因此我可以使用stepsTotal [i ]在另一个功能中(用于处理单击时的上一个按钮)。
这是我为下一个按钮(不包括上一个按钮功能)工作的代码。我试图让console.log(i)在单击下一个按钮时打印0、1、2、3等。)
const stepsTotal = document.getElementsByClassName("question-steps");
const currentStep = (function() {
var i;
console.log(i); // How do I have this print the current value of i instead of undefined? (i.e. match the results of the second console.log)
for (i=0; i<stepsTotal.length; i++) {
document.getElementById("next-button").addEventListener("click", scrollToCurrentStep);
function scrollToCurrentStep() {
stepsTotal[i].scrollIntoView(true);
i++;
console.log(i); // I want the first console.log to match this one
return
}
return
}
}());