Spec-Zone.ru › jQuery

Событие ajaxSend

.on( "ajaxSend", handler )Возвращает: jQuery

Описание: Прикрепить функцию, которая будет выполняться перед отправкой запроса Ajax. Это событие Ajax.

  • версия добавлена: 1.7.on( "ajaxSend", handler )

    • "ajaxSend"
      Тип: строка
      Строка "ajaxSend".
    • handler
      Тип: Функция( Событие event, jqXHR jqXHR, Объект ajaxOptions )
      Функция, которая должна быть вызвана.

Эта страница описывает событие 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>" );
} );

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/ajaxSend

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API