Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
Método externo de una devolución de llamada AJAX en JavaScript y jQuery

Tengo una función en JS y jQuery que activa una llamada AJAX y tiene un bloque de callback de llamada para avisarme cuando haya terminado:

 function ajaxCall(url, type, dataType, dataToSend, callback) { if (dataType == undefined) dataType = "json"; if (dataToSend == undefined) dataToSend = null; $.ajax({ url: url, type: type, dataType: dataType, contentType: "application/json", data: dataToSend, async: true, success: function (result) { callback(result); }, error: function (data, status) { console.error("Server Error: " + status); } }); }

¡Estoy accediendo así, pero usar funciones externas como showAjaxLoader() simplemente no funciona! dice que esta función no está definida:

 function registerUser(data) { ajaxCall(pathServiceRegister, "POST", undefined, JSON.stringify(data), function (result) { // SOME CODE THAT RUNS WHEN IT'S COMPLETE // External method: showAjaxLoader(false); // Doesn't work }); }); function showAjaxLoader(show) { var loader = $('.ajax-loader'); if (show) { loader.fadeIn("fast"); } else { loader.fadeOut("fast"); } }

¿Qué estoy haciendo mal?

Gracias :)

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Has intentado hacer algo como:

 var that = this; function registerUser(data) { ajaxCall(pathServiceRegister, "POST", undefined, JSON.stringify(data), function (result) { // SOME CODE THAT RUNS WHEN IT'S COMPLETE // External method: that.showAjaxLoader(false); }); });
about 4 years ago · Santiago Trujillo Denunciar

0

Resolvió alguna muestra. esto puede ser una buena práctica. Prueba esto :

 $(document).ready(function() { $("button").click(function() {registerUser();}); }); var Scallback = function(arg) { alert("Success :"+arg); showAjaxLoader(true); } var Ecallback = function(arg) { alert("Err :"+arg); showAjaxLoader(true); } function showAjaxLoader(show) { var loader = $('.ajax-loader'); if (show) { loader.fadeIn("fast"); } else { loader.fadeOut("fast"); } } function ajaxCall(url, type, Scallback, Ecallback) { $.ajax({ url : url, type : type, async : true, success : function(result) { Scallback(result); }, error : function(data) { Ecallback(data) } }); } function registerUser() { ajaxCall(pathServiceRegister, "GET", Scallback, Ecallback); }
about 4 years ago · Santiago Trujillo Denunciar

0

Declara tu método así

 var obj = { showAjaxLoader : function(show) { var loader = $('.ajax-loader'); if (show) { loader.fadeIn("fast"); } else { loader.fadeOut("fast"); } } }

Luego, dentro de ajax, llama a obj.showAjaxLoader(false); Esto puede funcionar.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda