Как установить функцию «успех» для нескольких запросов AJAX? - PullRequest
3 голосов
/ 22 января 2011

Как мне установить ajax success для всех выполненных запросов?

$.ajax({
  success: function(){ clicked = false;}
});

$('.button').click(function(){
   $.post('file.php',{},function(){});
   $.post('file.php',{},function(){});
   $.post('file.php',{},function(){});
});

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Вы имеете в виду выполнить один метод, как только все запросы завершены?

var counter = 0;
var nRequests = 3;

function multiSuccess() {
    // do something    
}

$('.button').click(function(){
   $.post('file.php',{},function(){
       counter++;
       if(counter == nRequests) {
           multiSuccess();
       }
   });
   $.post(...
   $.post(...
});

Кроме того, вы можете посмотреть ajaxStop:

Всякий раз, когда Ajax-запрос завершается, jQuery проверяет, есть ли другие ожидающие Ajax-запросы.Если ничего не осталось, jQuery вызывает событие ajaxStop.Все обработчики, которые были зарегистрированы с помощью метода .ajaxStop (), выполняются в это время.

0 голосов
/ 22 января 2011

Вы можете использовать ajaxSetup(), чтобы указать параметры по умолчанию для вызовов ajax:

$.ajaxSetup({
  success: function(){ clicked = false; }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...