函数循环内的Lint错误

时间:2015-01-20 12:55:51

标签: javascript jquery

我使用下面的代码,它的作用和我的问题我应该如何更好地编写它,因为当我使用EsLint时,我得到了红色消息,说没有循环的功能,目前我是JS的新手,所以我不知道该怎么做那更好......

    for (var i = 0; i < allChildren.length; i++) {
        allChildren[i].attachChange(function(){
                this.getChecked() ? nSelectedChildren+=1 : nSelectedChildren-=1;
                if(nSelectedChildren === 0){
                    oParent.toggle("Unchecked");
                }
                else if(nSelectedChildren === allChildren.length){
                    oParent.toggle("Checked");
                }
                else{
                    oParent.toggle("Mixed");
                }
            }
        );

1 个答案:

答案 0 :(得分:1)

EsLint意味着应该是什么,我认为是:

function foo(){
    this.getChecked() ? nSelectedChildren+=1 : nSelectedChildren-=1;
    if(nSelectedChildren === 0){
        oParent.toggle("Unchecked");
    }
    else if(nSelectedChildren === allChildren.length){
        oParent.toggle("Checked");
    }
    else{
        oParent.toggle("Mixed");
    }
}

for (var i = 0; i < allChildren.length; i++) {
    allChildren[i].attachChange(foo);
}

不要在循环中定义函数

相关问题