Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Событие load (https://javascript.ru/forum/jquery/5491-sobytie-load.html)

Leksiy 18.10.2009 20:31

Событие load
 
Здравствуйте!
У меня есть своя страничка, гдя я использую jQuery. В моем скрипте я проверяю загружена ли картинка с помощью события load. После загрузки картинки я скрываю рисунок с прелоадером. До недавнего времени все работало.
$('#my_img').load(function(){my comand});
Но я обновил OPERA до OPERA 10 и теперь скрипт работает только при первом выполнении. В дальнейшем событие load на картинку в OPERA 10 не срабатывает, будет срабатывать только если полностью перезагрузить OPERA и опять сработает только первый раз. Как я понимаю OPERA берет картинку из кэша.
Как выполнить проверку загрузки картинки? Может есть другой способ? Или как бороться с этим в OPERA?

Большое спасибо за внимание!!!!!

Jaska 18.10.2009 21:34

юзай $.live либо плагин livequery, он в отличие от стандартного работает в IE

Leksiy 18.10.2009 22:44

Цитата:

Сообщение от Jaska (Сообщение 32701)
юзай $.live либо плагин livequery, он в отличие от стандартного работает в IE

Пробовал, не работает. Событие load не срабатывает.

x-yuri 18.10.2009 23:04

оно не срабатывает потому, что картинка уже загружена. Что находится в обработчике?

Leksiy 18.10.2009 23:41

Цитата:

Сообщение от x-yuri (Сообщение 32711)
оно не срабатывает потому, что картинка уже загружена. Что находится в обработчике?

Извините, может я не понятно объяснил. Ситуация такая - мой скрипт работал во всех браузерах, а это IE6, IE7, Firefox, Opera9, Google Chrome, Safari. Но в Opera 10 он не работает. Поэкспериментировав я понял, что не срабатывает событие load. Я написал следующее:
$('#my_img').load(function (){alert('Yes')});
И эта команда срабатывает везде в чтом числе в ОПЕРА10, но в ОПЕРА 10 только один раз, даже если открыть новую вкладку и зайти на страницу. Если закрыть ОПЕРу и включить заново, опять скрипт сработает 1 раз. Как я понял ОПЕРА берет картинку из кэша и событие load не срабатывает. Хотя, по идее, все браузеры так делают, но при этом load у них срабатывает каждый раз.

Kolyaj 19.10.2009 13:39

src картинки после навешивания события выставляете?

Leksiy 19.10.2009 13:49

Цитата:

Сообщение от Kolyaj (Сообщение 32770)
src картинки после навешивания события выставляете?

Извините, я не понял Вашего вопроса.
код HTML
<img id="my_img" src="my_page/my_img.jpg">
Код javascript я показал. Никакого изменения src нет, но load должен сработать после события загрузки картинкки. Эфект как я уже говорил.

Kolyaj 19.10.2009 14:23

Цитата:

Сообщение от Leksiy
но load должен сработать после события загрузки картинкки

Вот только вы событие навешиваете уже после загрузки. Попробуйте
<img id="my_img" src="my_page/my_img.jpg" onload="alert('yes');">

Leksiy 19.10.2009 14:32

<img id="my_img" src="my_page/my_img.jpg" onload="alert('yes');">
[/quote]

Согласен с Вами на все 100%. Так работает во всех браузерах, но хотелось бы вызывать функцию используя событие load из библиотеки jquery. Не понятно почему не всегда отлавливаются эти события. Использовать команду bind для связи своей функции с событием не помогает.

Kolyaj 19.10.2009 14:42

Цитата:

Сообщение от Leksiy
Не понятно почему не всегда отлавливаются эти события.

Я повторю, мне не трудно
Цитата:

Сообщение от Kolyaj
Вот только вы событие навешиваете уже после загрузки.



Часовой пояс GMT +3, время: 08:44.