.on( "ajaxComplete", handler )Возвращает: jQuery
Описание: Регистрирует обработчик, который вызывается при завершении запросов Ajax. Это событие Ajax.
-
версия добавлена: 1.7.on( "ajaxComplete", handler )
-
"ajaxComplete"Тип: строкаСтрока
"ajaxComplete". -
handlerФункция, которая должна быть вызвана.
-
Эта страница описывает событие ajaxComplete. Для устаревшего метода .ajaxComplete(), см. .ajaxComplete().
Всякий раз, когда запрос Ajax завершается, jQuery вызывает событие ajaxComplete. В этот момент выполняются все зарегистрированные обработчики ajaxComplete.
Чтобы наблюдать за работой этого метода, настройте базовый запрос Ajax load:
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
Прикрепите обработчик события к документу:
$( document ).on( "ajaxComplete", function() {
$( ".log" ).text( "Triggered ajaxComplete handler." );
} );
Теперь выполните запрос Ajax с помощью любого метода jQuery:
$( ".trigger" ).on( "click", function() {
$( ".result" ).load( "ajax/test.html" );
} );
Когда пользователь нажмёт элемент с классом trigger, и запрос Ajax завершится, сообщение в журнале отобразится.
Все обработчики ajaxComplete вызываются независимо от того, какой запрос Ajax был завершён. Если необходимо различать запросы, используйте параметры, передаваемые обработчику. Каждый раз, когда выполняется обработчик ajaxComplete, ему передаётся объект события, объект XMLHttpRequest и объект настроек, который использовался при создании запроса. Например, вы можете ограничить обратный вызов, обрабатывая только события, относящиеся к определённому URL:
$( document ).on( "ajaxComplete", function( event, xhr, settings ) {
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseText );
}
} );
Примечание: Вы можете получить возвращаемое содержимое Ajax, посмотрев на xhr.responseText.
Дополнительные замечания:
- Начиная с jQuery 1.9, все обработчики глобальных событий Ajax jQuery, включая добавленные с помощью
.on( "ajaxComplete", ... ), обязательно должны быть прикреплены кdocument. - Если
$.ajax()или$.ajaxSetup()вызываются с опциейglobalустановленной вfalse, событиеajaxCompleteне будет срабатывать.
Пример:
Показать сообщение при завершении запроса Ajax.
$( document ).on( "ajaxComplete", function( event, request, settings ) {
$( "#msg" ).append( "<li>Request Complete.</li>" );
} );