оно не будет выполнено, так как событие сработает в контексте элемента, а не problemPicker. Это было бы, как если бы функция была вызвана так

<input class="jProblemClass" id="Checkbox{%= ID %}" type="checkbox" onchange="problemPicker.onChangeProblemCheckBox('{%=ID %}');"/>

первой проверки или снятия флажка ничего не происходит. Afetr второй клик, вызов моей функцииproblemPicker.onChangeProblemCheckBox, но я получаю ID сначала проверить. Почему? Может ли кто-нибудь мне помочь?

onChangeProblemCheckBox: function(id) {
    if ($('#CheckBox' + id).attr("checked") == true) {
        problemPicker.addToCheckProblems(id);

        var checkboxes = $('.jProblemClass:checked');

        if ((checkboxes.length > general.limit) && (general.limit != 0)) {
            alert('The limit of ' + general.limit + ' problems exceeded. Please deselect ' + (checkboxes.length - general.limit).toString() + '.');
        }
    } else {
        problemPicker.delFromCheckProblems(id);
    }
},

Ответы на вопрос(3)

Ваш ответ на вопрос