如何从 .$getJSON 方法中的 jQuery 函数更新变量

How to update a variable from a jQuery function inside a .$getJSON Method

本文关键字:jQuery 函数 更新 变量 方法 getJSON      更新时间:2023-09-26

给出这个方法,我声明了一个变量"answerswer",它将包含一个字符串值。然后我调用一个getJSON方法。我想更新该方法中提到的变量:

function verificarRespuestasAjax(pregunta, pinId, respuesta, index){
        var answer = pregunta;
        $.getJSON("../usuarios/comparar_respuestas_JSON", {pinId: pinId, preguntaId: pregunta, respuesta: respuesta.val() }, function(verifRespuestas){
            if(verifRespuestas){
                $("#mensajeError"+index).remove();
                answer += 'true';
            }else{
                if (!$("#mensajeError"+index).length > 0)
                    $(respuesta).after('<em id="mensajeError'+index+'">*La respuesta no coincide</em>');
                answer += 'false';
            }
        });
        return answer;
    }

我应该怎么做?

提前感谢!

您确实更新了变量。 这里唯一的问题是getJSON调用是异步的。 在执行alert()时,尚未调用getJSON的函数回调。

您需要将alert(answer)代码放在从 JSON 回调调用的函数中。

function verificarRespuestasAjax(pregunta, pinId, respuesta, index){
  var answer = pregunta;
  $.getJSON("../usuarios/comparar_respuestas_JSON", {pinId: pinId, preguntaId: pregunta, respuesta: respuesta.val() }, function(verifRespuestas){
    // .... snip ....
    completed();
  });
  answer += 'true';
  function completed() {
    alert( answer );
  }
}

AJAX 调用是异步的。收到响应后应运行的任何代码都需要位于成功回调(或该回调调用的函数)中。