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