1

Ajaxを使用してページを呼び出したいのですが、1つのAjax呼び出しが完了すると、ボタンをクリックすると別の.firstAjax呼び出しが機能しますが、2番目の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による次の回答で説明されているような単純なキューを設定します。以下で参照されるajaxリクエストのシーケンス:

(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 に答える