/ / jak wykonać lub wywołać metodę za pomocą jquery? - jquery

jak wykonać lub wywołać metodę z jquery? - jquery

Próbuję wykonać kilka metod w kolejności:

var objMethods = [JqueryAjaxViaPageMethod, JqueryWebServiceZeroParams, JqueryWebServiceOneParam, JqueryWebServiceTwoParams, JqueryWebServiceObjectParam, JqueryWebServiceClassArray];

$.each(objMethods, executeMethod(this));

function executeMethod(methodname) {
methodname();
alert("done");
}

to jednak nie działa

wyjątkowo to robi:

executeMethod(JqueryAjaxViaPageMethod);

Jak wykonać „tablicę” metod?

Odpowiedzi:

0 dla odpowiedzi № 1

W $.each(objMethods, executeMethod(this)), this najprawdopodobniej odnosi się do window. To, co robisz, dzwoni executeMethod i mijając zwracana wartość jako oddzwonienie do $.each.

Myślę, że chcesz:

$.each(objMethods, function(index, method) {
executeMethod(method); // of course you could just do `method()` here as well
});

0 dla odpowiedzi nr 2

Zależy od tego, który zakres (kontekst) jest zadeklarowany

function executeMethod(methodname,context) {
context = context || window;
context[methodname]();
alert("done");
}
$.each(objMethods, function(){
executeMethod(this);
});

0 dla odpowiedzi № 3

chyba każda metoda jest błędna. powinno być

  $.each(objMethods, function(i,l) {
executeMethod(l);
});

gdzie i = indeks elementu l = element indeksu i


0 dla odpowiedzi nr 4

jeśli metody zostały zadeklarowane w ten sposób

function JqueryAjaxViaPageMethod () {
...
}

Następnie możesz po prostu wywołać taką metodę

function executeMethod(methodname) {
window[methodname]();
alert("done");
}

Jeśli metody zostały zadeklarowane jako część obiektu

var objMethods = {
JqueryAjaxViaPageMethod : function () { ... },
...
};

Wtedy nazwałbyś to tak

function executeMethod(methodname) {
objMethods[methodname]();
alert("done");
}