我的代码的工作,但我不希望jshint错误了:环内声明JSHint警告闭包的内部循环使用外部变量
功能引用外部范围的变量可能会导致混淆的语义
我试过用ES6来解决错误,因为我认为这样可以解决问题。我也配置了我的gruntfile以使用ES6。
我尝试使用两个环,外环与变量“i”和具有可变“J”
无论工作的内部循环。这里提供
全码:https://jsfiddle.net/rwschmitz/zz7ot3uu/
var hobbies = document.getElementsByClassName("hobbies");
var active = false;
// For mouse input
for (var i = 0; i < 5; i++) {
hobbies[i].onmouseover = function() {
hobbies[0].classList.add('hobbies-slide-left');
hobbies[1].classList.add('hobbies-slide-right');
hobbies[2].classList.add('hobbies-slide-left');
hobbies[3].classList.add('hobbies-slide-right');
hobbies[4].classList.add('hobbies-slide-left');
};
}
// For click input
for (var i = 0; i < 5; i++) {
hobbies[i].onclick = function() {
hobbies[0].classList.add('hobbies-slide-left');
hobbies[1].classList.add('hobbies-slide-right');
hobbies[2].classList.add('hobbies-slide-left');
hobbies[3].classList.add('hobbies-slide-right');
hobbies[4].classList.add('hobbies-slide-left');
};
}
是的,这工作。我必须在适当的地方添加7个分号。我对StackOverflow有点新鲜。所以我不确定这是否值得编辑你的答案。无论如何,代码仍然可以与您的解决方案一起工作,并摆脱错误。我会标记为已接受。谢谢! –
哦,我使用了一种叫做“标准”的不同棉绒。它本身并不是一个标准,但它包含JavaScript的ASI规则(自动分号插入)。由于这个问题具体是关于linting,如果您愿意,我可以将它们添加回来。 –
我会说他们重新加入,因为它的主题是w/JSHint。无论哪种方式,真棒,你很快回答,我真的很感激它的男人! –