Справочник API

.error() в jQuery

Содержание статьи
  • Категории: Events › Browser Events

    Устанавливает (или вызывает) обработчик JavaScript события "error" (когда имеет место ошибка JavaScript на странице или ошибка при загрузке изображения) для соответствующих элементов набора jQuery.

Синтаксис и описание:

  • Добавлено в jQuery 1.0.error( handler( eventObject ) )

  • Добавлено в jQuery 1.4.3.error( [ eventData ,] handler( eventObject ) )

  • Добавлено в jQuery 1.0.error( )

  • Команда .error() — сокращённый вариант события error, которое браузер генерирует на элементе, если ресурс не удалось загрузить (чаще всего — изображение <img> с недоступным src). Событие error не всплывает, поэтому делегирование через общего предка для него не работает — обработчик нужно вешать непосредственно на элемент, желательно до установки атрибута src.

Возвращаемое значение: (объект) Набор jQuery.

Параметры:

  • eventData – (объект) Данные, доступные обработчику через event.data.

  • handler( eventObject ) – Функция-обработчик события error.

  1. Примечание:

    Обработчик нужно назначать раньше, чем браузер начнёт загрузку ресурса, иначе есть риск пропустить событие. Для <img> это значит: сначала .on('error', ...), затем присвоение src.

  2. Примечание:

    Внутри обработчика error не стоит просто подставлять другую заведомо нерабочую заглушку — если запасное изображение тоже недоступно, событие error сработает повторно и может уйти в бесконечный цикл. Обработчик должен снимать сам себя или проверять, что заглушка точно существует.

  3. Примечание:

    Метод .error() никогда не предназначался для перехвата JavaScript-ошибок (исключений) на уровне window — для этого в браузере есть нативное событие error объекта window и window.onerror, которые с jQuery никак не связаны.

  4. В jQuery 3.x и 4.0:

    Шорткат .error() deprecated с jQuery 1.8 и полностью удалён в jQuery 3.0 — в 3.7.1 и 4.0 его нет. Замена: .on("error", handler) вместо .error(handler), .trigger("error") вместо .error(). Для отслеживания ошибок скриптов используйте нативный window.addEventListener('error', fn).

Примеры:

  1. Устаревший синтаксис (работал до jQuery 3.0, сейчас метод отсутствует) — показан только для сравнения.

    // jQuery 1.x–2.x (метод удалён в 3.0)
    $('#logo').error(function() {
      $(this).attr('src', '/images/placeholder.png');
    });
  2. Актуальный вариант на .on(), рабочий в jQuery 3.7.1 и 4.0. Обработчик снимает сам себя, чтобы избежать зацикливания, если и заглушка недоступна.

    $('#logo').on('error', function handler() {
      $(this).off('error', handler).attr('src', '/images/placeholder.png');
    }).attr('src', 'https://example.com/logo.png');
  3. Перехват ошибок именно JavaScript-кода — не через jQuery, а через нативный обработчик window.

    window.addEventListener('error', function(event) {
      console.log('Ошибка скрипта:', event.message);
    });

[ наверх ]

Вопросы и ответы

Для чего используется .error() в jQuery?

Устанавливает (или вызывает) обработчик JavaScript события "error" (когда имеет место ошибка JavaScript на странице или ошибка при загрузке изображения) для соответствующих элементов набора jQuery.

Поиск по материалам

Начните вводить — поиск работает по заголовкам и тексту.

Esc — закрытьВсе материалы →