jQuery ajax beforeSend干扰.done()

时间:2015-08-15 13:35:51

标签: php jquery ajax

在一个网站中,我有几个由事件加载的ajax部分,主要是点击。要通知访问者,显示加载部分。这在大多数情况下都很好用,但有时ajax调用正在接收响应,因此很快干扰了beforeSend。

我的典型结构如下:

$(document).on('click', '.handler', function() { 
  var target = $(this).attr('data-targetElement');

  $.ajax({
    url: '/ajax.php?someParameter=hasValue',
    beforeSend: showLoading(target)
  })
  .done(function(response) { 
    console.log('Hi there, I\'m done!');
    $('#' + target).html(response);
  });
});

// This is in a function because it's used by all ajax-calls
function showLoading(target) { 
  $('#' + target).html('My loading message');
}

问题是,当我检查控制台消息时,即使到达.done(),仍然显示加载消息,因为显示了Hi there, I'm done!

所以看起来beforeSend似乎没有达到完成状态或类似的东西导致它'冻结',因为targetElement中的内容没有用ajax-call的响应更新。

我不知道如何解决这个问题。有什么建议吗?

更新, 抱歉打字错误,我只是在这里输入示例代码......

0 个答案:

没有答案