/ / JQuery Ajax wywołuje tylko wstępnie zdefiniowaną funkcję - javascript, jquery, ajax

JQuery Ajax tylko wywołuje predefiniowaną funkcję - javascript, jquery, ajax

Mam następującą metodę JQuery Ajax:

$.ajax({
type: "POST",
url: $(form).attr("action"),
data: formData,
dataType: "json",
success: function() {
$("#test").html("testing123");
},
});

Jak napisano, funkcja sukcesu nie uruchamia się.

Jeśli jednak predefiniuję funkcję w innym miejscu, a następnie wywołam ją w następujący sposób:

success: testFunction()

LUB

success: $("#test").html("testing123")

to działa.

czego mi brakuje?

Odpowiedzi:

4 dla odpowiedzi № 1

Rozwiązania, które Twoim zdaniem działają, są w rzeczywistości jedynie iluzją. W rzeczywistości nie są wzywani success, ale dokładnie wtedy, kiedy to ogłaszasz. To prowadzi mnie do wniosku, że twoje wywołanie ajax nie zwraca success.

Byłby właściwy sposób na zdefiniowanie i przekazanie funkcji

success: testFunction

Jeśli zrobisz success: testFunction(), uruchamiasz tę funkcję od razu podczas analizowania kodu, a nie kiedy zadzwoni wywołanie zwrotne z twojego ajax. To samo dotyczy

success: $("#test").html("testing123")

i jest faktycznie równoważny, jeśli zadzwoniłeś testFunction() zaraz po twoim wywołaniu ajax.