javascript - AJAX响应后如何退出父函数

标签 javascript jquery

我正在使用 AJAX 请求来检查某些内容是真还是假。以下是包括 AJAX 请求的完整功能:

function selectAnswer(id, questionId) {
    $.get("php/forms/select-answer-process.php?scope=get&id="+questionId, function(data) { if (data == "true") { alert("You can only select one answer per question"); } });

    var confirmChoice = confirm("Are you sure you want to select this as the correct answer? This cannot be undone.");
    if (confirmChoice) {
        $.get("php/forms/select-answer-process.php?scope=save&id="+id);
        document.getElementById("answer-check-"+id).src = "img/icons/check-green.png";
    } else {
        return false;
    }
}

警报效果很好,但如果 AJAX 响应为 true,我想退出父函数。我怎样才能做到这一点?

最佳答案

由于 ajax 是异步的,ajax 调用之后的任何内容仍然会在 ajax 调用完成后执行。相反,通常在 ajax 返回后使用回调来使用返回的数据。您应该在回调中使用从 ajax 调用返回的数据,如下所示:

function selectAnswer(id, questionId) {
 $.get("php/forms/select-answer-process.php?scope=get&id="+questionId, function(data) {
  if (data == "true") { 
   alert("You can only select one answer per question"); 
  }else{
   successResponse(id);//callback when ajax is complete
  }
 });
}

//function to be called if ajax completion is successful and correct
function successResponse(id){
 var confirmChoice = confirm("Are you sure you want to select this as the correct answer? This cannot be undone.");
 if (confirmChoice) {
    $.get("php/forms/select-answer-process.php?scope=save&id="+id);
    document.getElementById("answer-check-"+id).src = "img/icons/check-green.png";
 }
}

关于javascript - AJAX响应后如何退出父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16845549/

相关文章:

javascript - 仅在 tumblr 博客主页上显示一个 div?

javascript - 如何将php变量分配给JS变量

javascript - 当参数值发生变化时如何运行函数?

javascript - 我正在尝试在加载时使 div 滑动,但我以前的解决方案不再有效?

javascript - jQuery - 无法获取 append 元素的属性

javascript - 缩放瞄准鼠标光标的图像

jquery - 函数构造函数和 eval

javascript - 在 Knockout.js 上清除节点后如何重新应用绑定(bind)?

javascript - 奇怪的 JQuery 错误 "code 501, message Unsupported method OPTIONS"

javascript - 为什么 .text().replace() 不适用于 td 元素? (jsfiddle)