有这样的一块在哪里
var item = ['A', 'B', 'C'];
for(var i=0; i<item.length; i++) {
$(document).on('click', '#calc'+item[i], function() {
$("#calc"+item[i]+"Sum").addClass("field");
($(this).is(":checked")) ? $("#calc"+item[i]+"Info").css("display", "") : $("#calc"+item[i]+"Info").css("display", "none");
});
}
只有AB和C发生变化; 我想写()
{{1}}
在点击功能之后,他又增加了一个功能。事实证明,该函数内部已经有i =3。对于这个问题还有其他解决方案吗?谢谢
答案 0 :(得分:1)
事实是您引用的是外部作用域变量。
根据您的情况,您可以尝试以下代码:
var item = ['A', 'B', 'C'];
for(var i=0; i<item.length; i++) {
const j = i;
$(document).on('click', '#calc'+item[j], function() {
$("#calc"+item[j]+"Sum").addClass("field");
($(this).is(":checked")) ? $("#calc"+item[j]+"Info").css("display", "") : $("#calc"+item[j]+"Info").css("display", "none");
});
}