W jaki sposób wywołać tą samą funkcję na kilku elementach, bez powtarzania?

0
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;
            });
        });
    }
0

Możesz zastosować iterację w funkcji disableField()

function foo() {
  for (var i = 0; i < arguments.length; i++) {
    alert(arguments[i]);
  }
}

http://stackoverflow.com/questions/2141520/javascript-variable-number-of-arguments-to-function

1 użytkowników online, w tym zalogowanych: 0, gości: 1