1

我想使用 Ajax 调用页面,当一个 Ajax 调用完成时,其他通过单击按钮.firstAjax 调用起作用,但在第二个 ajax 调用不起作用。

$('document').ready(function(){
    $('.next').click(function(){
        var a=$("#cs_brief").val();
        var dataObj = {cs_brief : a};
        $.get('b.php',dataObj, function(data) {
            $('#division').html(data);
        });                 
    });
});
4

2 回答 2

2

如果您需要等待 2 个回调完成,您可以使用$.when 例如:

var promiseA = $.get('a.php');
var promiseB = $.get('b.php');

$.when( promiseA, promiseB).done( function (dataA, dataB){
  $('#division').html(dataB);
});
于 2012-11-14T18:03:35.500 回答
0

此功能是通过使用一个简单的队列来实现的,在该队列中,ajax 调用一个接一个地执行。

为此,设置一个简单的队列,就像 Gnarf 在以下答案中描述的那样:Sequencing ajax requests,参考如下:

(function($) {
  var ajaxQueue = $({});
  $.ajaxQueue = function(ajaxOpts) {
    var oldComplete = ajaxOpts.complete;
    ajaxQueue.queue(function(next) {
      ajaxOpts.complete = function() {
        if (oldComplete) oldComplete.apply(this, arguments);
        next();
      };
      $.ajax(ajaxOpts);
    });
  };
})(jQuery);  

并像使用它一样

function executeAjaxCallsUsingQueue(variants) {
  for (var i = 0; i < variants.length; i++) {
    var variant = variants[i];
    $.ajaxQueue({
        url:  '/url_to_process' ,
        type:     'post', 
        data:  variant ,
        dataType: 'json' , 
        success:  function(response) { }
    });
  }
}
于 2012-11-14T18:23:28.693 回答