我试图弄清楚如何在下面优化此代码。我尝试使用迭代[i++]
,.each()
和.map()
。
$(document).ready(function(){
var formFilled = ['#div1','#div2'],
barFill = ['.bar1','bar2'],
progFill = ['#prog1','#prog2'];
$(formFilled[0]).on('click',function(){
$(progFill[0]).addClass('filled');
$(barFill[0]).addClass('filled');
})
$(formFilled[1]).on('click',function(){
$(progFill[1]).addClass('filled');
$(barFill[1]).addClass('filled');
})
});
目标是当我点击#div1
时,它会将课程filled
添加到.bar1
和#prog1
。
我在考虑以下几点:
for(var i = 0; i < 2; i++) {
$(formFilled[i]).on('click',function(){
$(barFill[i]).addClass('filled');
$(progFill[i]).addClass('filled');
});
}
可悲的是,这似乎不起作用。
更新
来自@Mike_C的解决方案正是我所寻求的。这非常有效:
var funcs = [];
function progClick(i) {
$(formFilled[i]).on('click',function(){
$(barFill[i]).addClass('filled');
$(progFill[i]).addClass('filled');
});
}
for (var i = 0; i < 2; i++) {
funcs[i] = progClick(i);
}