2010-04-06 2 views
1

я использовать что-то вроде этогоjquery load event иногда не работает, почему?

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

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

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

ответ

1

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

3

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

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

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

+0

Я бы дал этот ответ кредит $$$ –

Смежные вопросы