JQuery.load() не работает над моим изображением

У меня есть код, который я пытаюсь запустить, как только мое изображение закончит загрузку. Я использую следующий код jQuery:

$("#myimageid").load(function() {
    alert('Image Loaded');
});

Однако всплывающее окно никогда не появляется. Я не могу заставить функцию .load() работать! У кого-нибудь были проблемы с этим?

Ответ 1

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

$("#myimageid").on('load', function() {
  alert('Image Loaded'); 
}).each(function() {
  if(this.complete) $(this).load();
});

Ответ 2

Что происходит, когда вы очищаете кеш браузера и снова пытаетесь использовать script? Из jQuery load() docs:

Возможно, что событие загрузки не будет срабатывать, если изображение загружен из кеша браузера. к учтите эту возможность, мы можем используйте специальное событие загрузки, которое срабатывает если изображение будет готово. event.special.load в настоящее время доступный как плагин

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

Итак, похоже, что ваше кэшированное изображение не запускает событие загрузки, поэтому вы можете попробовать подключаемый модуль, упомянутый выше. Вы можете найти JS файл для загрузки здесь.

Надеюсь, это поможет!