Приветствую! Есть небольшой вопросец по поводу обработки 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('!');});
если оставить предыдущий - событие не поймается вообще.
Вопрос в том, корректно ли такое решение или есть другое?