优化jQuery" for"与数组

时间:2017-04-05 13:51:05

标签: javascript jquery arrays optimization code-cleanup

我试图弄清楚如何在下面优化此代码。我尝试使用迭代[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);
}

0 个答案:

没有答案