函数中无法访问全局变量 - jQuery / ajax

时间:2017-04-08 19:40:45

标签: javascript jquery ajax

我有一个全局变量creditAmount,当用户登录时通过ajax调用填充。我想稍后在登录后调用的另一个函数中使用该变量。如何保持creditAmount的值可用于以后的功能?

这是定义和填充creditAmount的地方:

var creditAmount = "";

function getCustomer() {
  $(function() {
      $("#anId").submit(function(event){
        event.preventDefault();
        var form = this;
        var custEmail = $("anotherId").val();
      $.ajax({
          url: "/return_customer",
          data: {email: custEmail},
          type: "POST",
          dataType: "json",
          complete: function(data) {
            creditAmount = data.responseJSON;
            form.submit();
          },
      });
  });
 });  
}

然后我需要使用creditAmount

function getPendingCredit(){
  var modal = $("#fresh-credit-iframe");
  modal.load(function(){
      $(this).contents().find("#fresh-credit-continue-shopping").click(function(data){
      var enteredAmount = +($(modal).contents().find("#pending_credit_amount").val());
      console.log(creditAmount);
      $("#fresh-credit").hide();
  });
 });
}

最后,这就是我调用这两个函数的方式,但是当我到达creditAmount时再次为空白

getCustomer();

if(creditAmount != ""){
  showModal(closeModal);
  getPendingCredit(creditAmount);
}

1 个答案:

答案 0 :(得分:0)

设置延迟或使用promises / callback。使用ajax发送的请求与填充变量时收到的响应之间存在一点时间差。