jquery load event иногда не работает, почему? - PullRequest
1 голос
/ 06 апреля 2010

я использую что-то вроде этого

$(img).bind('load',function(){
       console.log('loaded');
});

и, очевидно, это работает, но когда страница загружает изображения из кеша событие не вызвано.

как я могу исправить эту ситуацию?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2010

Это событие не вызывается в некоторых браузерах, если изображение кэшируется, чтобы обойти это, необходимо проверить свойство .complete, например:

$("img").one('load',function(){
       console.log('loaded');
}).each(function() {
  if(this.complete) $(this).load();
});

.one() гарантирует, что он не запускается дважды, часть .each() вручную запускает событие для кэшированных изображений, которые сами не выполняют событие load.

1 голос
/ 06 апреля 2010

Поспеши! каждое изображение имеет свойство .complete (логическое значение), поэтому мне просто нужно проверить это, прежде чем связывать событие загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...