Spec-Zone.ru › jQuery

событие загрузки

Свяжите обработчик событий с событием "загрузка", или сработайте этим событием на элементе.

Содержание:

  • .on( "загрузка" [, eventData ], handler )
    • .on( "загрузка" [, eventData ], handler )
  • .trigger( "загрузка" )
    • .trigger( "загрузка" )

.on( "загрузка" [, eventData ], handler )Возвращает: jQuery

Описание: Свяжите обработчик событий с событием "загрузка".

  • версия добавлена: 1.7.on( "загрузка" [, eventData ], handler )

    • "загрузка"
      Тип: строка
      Строка "load".
    • eventData
      Тип: Любое
      Объект, содержащий данные, которые будут переданы обработчику событий.
    • handler
      Тип: Функция( Event eventObject )
      Функция, которая выполняется каждый раз, когда событие срабатывает.

Эта страница описывает событие load. Для метода .load(), удаленного в jQuery 3.0, см. .load().

Событие load отправляется элементу, когда он и все дочерние элементы полностью загружены. Это событие может быть отправлено любому элементу, связанному с URL: изображениям, скриптам, фреймам, iframes и объекту window.

Например, рассмотрим страницу с простым изображением:

<img src="book.png" alt="Book" id="book">

Обработчик событий может быть привязан к изображению:

$( "#book" ).on( "load", function() {
  // Handler for `load` called.
} );

Как только изображение загрузится, обработчик вызывается.

В общем случае нет необходимости ожидать полной загрузки всех изображений. Если код может быть выполнен ранее, обычно лучше поместить его в обработчик, отправленный методу .ready().

Ограничения события load при работе с изображениями

Частая проблема, которую разработчики пытаются решить с помощью сокращения load, заключается в выполнении функции при полной загрузке изображения (или набора изображений). Существует несколько известных ограничений, которые следует отметить. Это:

  • Он не работает последовательно и надёжно в разных браузерах
  • Он не срабатывает правильно в WebKit, если атрибут src изображения установлен на то же значение, что и раньше
  • Он не правильно распространяется вверх по дереву DOM
  • Может перестать срабатывать для изображений, которые уже находятся в кэше браузера

Примечание: Методы .live() и .delegate() не могут использоваться для обнаружения события load iframe. Событие загрузки не распространяется правильно на родительский документ, а свойство event.target не установлено Firefox, IE9 или Chrome, что необходимо для делегирования событий.

Примеры:

Выполните функцию, когда страница полностью загрузится, включая графику.

$( window ).on( "load", function() {
  // Run code
} );

Добавьте класс bigImg ко всем изображениям с высотой более 100 после загрузки каждого изображения.

$( "img.userIcon" ).on( "load", function() {
  if ( $( this ).height() > 100) {
    $( this ).addClass( "bigImg" );
  }
} );

.trigger( "загрузка" )Возвращает: jQuery

Описание: Сгенерировать событие "загрузка" на элементе.

  • версия добавлена: 1.0.trigger( "загрузка" )

    • "загрузка"
      Тип: строка
      Строка "load".

См. описание для .on( "load", ... ).

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

Spec-Zone.ru

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