JQuery способ обрабатывать все события успеха AJAX в одном месте - PullRequest
0 голосов
/ 22 июля 2011

У меня есть сценарий, в котором мне нужно обрабатывать все события успеха jquery в общем месте.потому что я хочу, чтобы какой-то делегат вызывался после всех успешных событий AJAX.Я знаю, что мы можем использовать $.ajaxComplete или $.ajaxSucess для этого.Но проблема в том, что все мои вызовы ajax имеют свои собственные обработчики успеха, поэтому в конечном итоге $ .ajaxSucess будет перезаписан.

И я знаю, что могу написать общий метод, который я могу использовать во всех обработчиках успеха ajax.но я не хочу этого делать, я хочу знать более чистый способ.

есть ли в jquery уже обработчик метода или какой лучший способ это сделать?

Ответы [ 5 ]

1 голос
/ 22 июля 2011

$.ajaxSuccess не перезаписывается локальным обработчиком успеха, он выполняется после локального.

1 голос
/ 22 июля 2011

попробуй таким образом-

 $.when(// your all ajax call)
   .then(//delegate handler after ajax succes)
1 голос
/ 22 июля 2011
$.when($.ajax("/page1.php"), $.ajax("/page2.php"))
  .then(mySuccessFunc, myFailureFunc);
1 голос
/ 22 июля 2011

Метод $.ajaxSuccess должен работать нормально, как видно из этого живого демо , и он не конфликтует с существующими обработчиками успеха ajax.Выполняется после каждого из них:

$('#msg').ajaxSuccess(function(result) {
    alert('ajax succeeded');    
});
0 голосов
/ 22 июля 2011

Имеет ли:

$.ajaxStop(...)

Исправляет вашу проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...