function disableField(field) {
field.prop('disabled', function (i, v) {
return !v;
});
}
// kilkadziesiąt linii pozniej
if (all_months !== '') {
allMonthsCheckbox.prop('checked', true);
disableField(monthSelect);
disableField(yearSelect);
}
W jaki sposob uniknac wypisywania disableField? Powtarza sie to jeszcze w kilku miejscach (no i sa to tylko 2 pola, gdyby bylo 10, to juz sie robi kilkadziesiat linijek kodu wiecej). Mozna by to zrobic z tablica elementow jako parametr, ale czy jest inne wyjscie? Mam na myśli coś na zasadzie disableField.call(null, arg1, arg2, arg3);
, cos co pokaże skryptowi, zeby wywołać tą funkcję (w postaci umieszczonej wyzej, bez iteracji) dla kazdego elementu.
function disableField(arr) {
jQuery.each(arr, function () {
jQuery(this).prop('disabled', function (i, v) {
return !v;
});
});
}