Показать сообщение отдельно
  #1 (permalink)  
Старый 13.01.2011, 12:35
Новичок на форуме
Отправить личное сообщение для bookworm Посмотреть профиль Найти все сообщения от bookworm
 
Регистрация: 13.01.2011
Сообщений: 8

onload - не успевает?
Приветствую! Есть небольшой вопросец по поводу обработки onload.

Имеем html:
<html>
<head>
<script src="jquery-1.4.4.min.js"></script>
<script src="scr.js"></script>
</head>
<body>
	<div class="mydiv"><img src=1.jpg ></div>
</body>
</html>

и скрипт:
$(document).ready(function(){$('div.mydiv > img').one('load', function (){alert('!');});});

Проверяю только локально - без веб-сервера, всё грузится из локальной файловой системы.

В таком виде все работает, но не совсем корректно. Если я открою локальную страницу в браузере - событие загрузки картинки не ловится. Делаю рефреш страницы - ловится.

Насколько я понимаю, из-за большой скорости локальной загрузки (из кэша браузера?) и обработки, в первом случае просто не успевает повеситься обработчик на картинку до того как она загрузится.

Единственное решение, которое мне пришло в голову - прописать вызов скрипта не в начале html, а перед закрывающим тегом body. И тогда в самом скрипте уже нужно другой код:
$('div.mydiv > img').one('load', function (){alert('!');});

если оставить предыдущий - событие не поймается вообще.

Вопрос в том, корректно ли такое решение или есть другое?
Ответить с цитированием